Nacos教程

1. Nacos简介

nacos spring cloud alibaba 生态中非常重要的一个组件,它有两个作用: 1) 注册与发现中心; 2) 配置
中心
nacos 有注册中心的作用,我们常见的配置中心还有 zk eureka
官网: https://nacos.io/zh-cn/index.html
微服务 cap 原则:
1 C(consistency): 一致性,同一时刻的同一请求的实例返回结果相同,属于强一致性性,也就是说,在
集群环境中,对外提供的服务信息是完全一致的,但是在效率上面可能会有一定的损耗;
2 A(availability): 可用性,所有实例的读写请求在一定的时间内可以得到正确的响应,它是弱一致性,
可能在极短的时间内,不同实例获取到的信息是不一致的,但是服务可用并且最终数据是一致的;
3 P(Partition tolerance): 分区容错性,在网络异常的情况下,仍旧能够提供正常的响应,这是在微服
务系统中必须要保证的;
nacos 在启动时,默认是 AP 模式,可以通过指令将 nacos 变为 CP 模式,在我们经常使用的微服务中,我
们是选择使用 AP 模式的,此时的所有实例都属于临时实例。临时实例和持久实例最显著的区别就是在健
康检查发现服务有问题时,持久实例被标注为不健康,而临时实例会直接剔除。

2. nacos基本使用

nacos 大体分为两部分: nacos 服务端和 nacos 客户端,首先是 nacos 服务端 ,这一部分是不需要做任
何改动,直接启动服务即可。有两种方式,一种是直接下载打包好的服务,直接通过命令运行即可;一
种是下载 nacos 源码,然后进行启动( nacos 是普通的 spring boot 项目)。

1.直接下载打包服务

下载完毕以后进行解压(不要有中文路径),进入到 bin 目录
命令启动: windows
.\startup.cmd -m standalone 后缀 standalone 指的是以单例的方式进行启动

输入路径

2.源码方式启动 

下载源码 https://github.com/alibaba/nacos 导入 idea 中。
启动类在 console 子项目中
编译启动即可。

3.创建nacos客户端

idea 创建 springboot 项目。
引入 jar 文件
<spring-cloud-alibaba-version>2.1.3.RELEASE</spring-cloud-alibaba-version>
<!--引入nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-cloud-alibaba-version}</version>
</dependency>
boot版本7.6引入nacos2021.0.5.0,alibaba2021.0.5
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.0.5.0</version>
</dependency>
启动类添加注解
application.yml 进行配置
spring :
  application :
    name : nacos-provider1
  cloud :
    nacos :
      discovery :
# 注册中心地址
        server-addr : 127.0.0.1 : 8848
server :
  port : 8081
启动项目
alibaba boot 对应版本

3.nacos集群配置

Nacos 集群默认最小要有三个节点,而且三个节点的配置中心的数据都需要存储在 MySQL 数据库中。
mysql 中创建数据库 nacos ,并在 nacos conf 目录下找到 nacos-mysql.sql 文件导入数据库
conf 目录下,修改文件名 cluster.conf.example cluster.conf
编辑文件信息如下: IP( 可使用 ipconfig 查看自己的 IP 地址 )+ 端口号
192.168.252.1:3333
192.168.252.1:4444
192.168.252.1:5555
注意:端口号不要连续,如 8081 8082 8083 。连续端口会报错。
复制 nacos 文件夹复制两份( nacos 最小 3 个节点)
修改 nacos2 端口为 4444 ,修改 nacos3 端口为 5555
依次启动 nacos1 nacos2 nacos3
进入 bin 目录下,双击启动 startup.cmd (默认以集群模式启动)
注意:切记不要使用 .\startup.cmd -m standalone 启动,需要以 cluster 模式启动。

输入地址( IP+ 端口号)
http://192.168.252.1:5555/nacos/index.html
http://192.168.252.1:4444/nacos/index.html
http://192.168.252.1:3333/nacos/index.html
密码账号都是 nacos/nacos 登录
点击集群查看是否配置成功
启动 IDEA 项目注册服务(会发现 3 nacos 同步服务)

4.nacos负载均衡

nacos 实现负载均衡是通过内置的 Ribbon 实现的。默认的负载均衡策略是使用的 Ribbon 中的默认策略
—— 轮询。
创建项目 provider01 ,配置如下
 
创建项目 provider02 ,配置如下
注意:服务名相同
创建 consumer01 ,配置如下,使用 rpc 调用服务

5.nacos配置中心

nacos spring-cloud-config 一样,可以作为一个配置中心,统一的来管理配置,可以配置多套环境,
各个微服务可以按需到 nacos 配置中心拉取相关配置, 且支持动态刷新 @RefreshScope

1. 进入nacos控制台创建命名空间

注意:命名空间以后在开发中可以区分为 开发、测试、生产 等环境。

2. cs命名空间下 创建yaml文件

3. 创建项目alibaba-config项目

4. 引入pom文件

<!--为了测试使用spring注解引入-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacosdiscovery</artifactId>
<version>${spring-cloud-alibaba-version}</version>
</dependency>
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacosconfig</artifactId>
<version>${spring-cloud-alibaba-version}</version>
</dependency>

5. 创建bootstrap.yml

注意: 使用 nacos 作为配置中心时,需要创建一个 bootstrap.yaml
application.yaml 两个配置文件, bootstrap.yaml 的优先级高于
application.yaml ,加载时实现加载 bootstrap.yaml 中的相关配置

6. 创建NacosConfigController测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值