广告
返回顶部
首页 > 资讯 > 后端开发 > Python >一篇文章带你了解Java SpringBoot Nacos
  • 811
分享到

一篇文章带你了解Java SpringBoot Nacos

JavaSpringBootSpringBootNacos 2022-11-12 12:11:00 811人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、什么是Nacos 1.1与eureka对比1.2与ZooKeeper对比1.3与SpringCloud config 对比 2、spring cloud Alibaba 套件

1、什么是Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 是spring Cloud A 中的服务注册发现组件,类似于Consul、Eureka,同时它又提供了分布式配置中心的功能,这点和Consul的config类似,支持热加载。

Nacos 作为微服务核心的服务注册与发现中心,让大家在 Eureka 和 Consule 之外有了新的选择,开箱即用,上手简洁。

1.1与eureka对比


1 eureka 2.0闭源码了。
2 从官网来看nacos 的注册的实例数是大于eureka的,
3 因为nacos使用的raft协议,nacos集群的一致性要远大于eureka集群.

分布式一致性协议 Raft,自 2013 年论文发表,之后就受到了技术领域的热捧,与其他的分布式一致性算法比,Raft 相对比较简单并且易于实现,这也是 Raft 能异军突起的主要因素。

在这里插入图片描述

Raft 的数据一致性策略

Raft 协议强依赖 Leader 节点来确保集群数据一致性。即 client 发送过来的数据均先到达 Leader 节点,Leader 接收到数据后,先将数据标记为 uncommitted 状态,随后 Leader 开始向所有 Follower 复制数据并等待响应,在获得集群中大于 N/2 个 Follower 的已成功接收数据完毕的响应后,Leader 将数据的状态标记为 committed,随后向 client 发送数据已接收确认,在向 client 发送出已数据接收后,再向所有 Follower 节点发送通知表明该数据状态为committed。

1.2与zookeeper对比

1.作为配置中心


服务器存储位置不同,分别采用Mysql和zk本身存储
消息发送,zk采用过半机制保持一致性,Nacos采用异步广播,通过后台线程重试保证。

2.作为注册中心

Nacos:nacos支持两种方式的注册中心,持久化和非持久化存储服务信息。

非持久直接存储在nacos服务节点的内存中,并且服务节点间采用去中心化的思想,服务节点采用hash分片存储注册信息
持久化使用Raft协议选举master节点,同样采用过半机制将数据存储在leader节点上

Zookeeper:利用zk的树型结构做数据存储,服务注册和消费信息直接存储在zk树形节点上,集群下同样采用过半机制保证服务节点间一致性

1.3与sprinGCloud config 对比

三大优势:

  • springcloud config大部分场景结合git 使用, 动态变更还需要依赖Spring Cloud Bus 消息总线来通过所有的客户端变化.
  • springcloud config不提供可视化界面
  • nacos config使用长连接更新配置, 一旦配置有变动后,通知Provider的过程非常的迅速, 从速度上秒杀springcloud原来的config几条街,

2、Spring Cloud Alibaba 套件

目前 Spring Cloud Alibaba 主要有三个组件:

  • Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
  • Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
  • AliCloud OSS: 阿里云对象存储服务(Object Storage Service,简称
  • OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

3、Nacos 的架构和安装

3.1、Nacos 的架构

在这里插入图片描述

  • Provider APP:服务提供者
  • Consumer APP:服务消费者
  • Name Server:通过VIP(Virtual IP)或DNS的方式实现Nacos高可用集群的服务路由
  • Nacos Server:Nacos服务提供者,里面包含的Open api是功能访问入口,Conig Service、Naming Service 是Nacos提供的配置服务、命名服务模块。Consitency Protocol是一致性协议,用来实现Nacos集群节点的数据同步,这里使用的是Raft算法(Etcd、Redis哨兵选举)
  • Nacos Console:控制台

3.2、Nacos Server 的下载和安装

在使用 Nacos 之前,需要先下载 Nacos 并启动 Nacos Server。

安装的参考教程

https://www.jb51.net/article/195538.htm

4、Nacos Server 的运行

4.1两种模式

Nacos Server 有两种运行模式:

  • standalone
  • cluster

4.2、standalone 模式

此模式一般用于 demo 和测试,不用改任何配置,直接敲以下命令执行


sh bin/startup.sh -m standalone

然后从 Http://xxxx:8848/nacos/index.html 进入控制台就能看到如下界面了

在这里插入图片描述

默认账号和密码为:nacos nacos

4.3、cluster 模式

测试环境,可以先用 standalone 模式撸起来,享受 coding 的快感,但是,生产环境可以使用 cluster 模式。

cluster 模式需要依赖 mysql,然后改两个配置文件:


conf/cluster.conf
conf/application.properties

cluster.conf,填入要运行 Nacos Server 机器的 ip


#it is ip
#example
10.10.109.214
11.16.128.34
11.16.128.36

修改NACOS_PATH/conf/application.properties,加入 Mysql 配置


 db.num=1 
 db.url.0=jdbc:mysql://localhost:3306/nacos_config
 characterEncoding=utf8&connectTimeout=1000&SocketTimeout=3000&autoReconnect=true
 db.user=root
 db.passWord=root

创建一个名为nacos_config的 database,将NACOS_PATH/conf/nacos-mysql.sql中的表结构导入刚才创建的库中.

4、输入以下命令即可启动服务:


	sh bin/startup.sh

输入http://xxxx:8848/nacos/index.html 进入控制台

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: 一篇文章带你了解Java SpringBoot Nacos

本文链接: https://www.lsjlt.com/news/135283.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作