java微服务环境配置——注册中心 配置中心Nacos
订阅专栏
一、使用步骤(注册中心)
1.启动nocas服务
1)先下载Nacos,解压之后启动。解压之后的目录如下:
2) 注意有的版本默认是集群启动,可以修改启动脚本。如下:
3)也可以使用bin目录下命令行启动:
startup.cmd -m standalone
4)启动的端口号可以在conf目录下的application.properties中修改,默认8848
5)启动成功后如下:
6)访问启动的nacos服务,url:http://localhost:8848/nacos/index.html
用户名和命名初始都是 nacos
启动成功。
7)修改密码可以按照如下步骤:(可跳过)
a.文本编辑器打开nacos目录conf下的nacos-mysql.sql,在最后找到
b.可以修改username,password。为自己的账号密码。但是密码是经过加密的。
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
c.数据采用的是BCrypt加密 我们可以找一个网站输入自定义密码 然后加密 把加密后的密码存到数据库中。
1.Bcrypt密码在线生成计算器 Bcrypt密码在线生成计算器 ab126软件园
2.Bcrypt密码生成计算器 - 计算专家
d.修改完保存,重启nacos即可。
2.服务中配置nacos的地址,导入nacos依赖
使用的是application.yml配置文件:
代码如下:
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
<!--注册中心 注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3.给要注册的服务命名
4.运行类上添加服务注册发现注解:@EnableDiscoveryClient
5.运行服务,在浏览器查看nacos
成功。
6.存在的一些bug 异常等处理(配置中心引起的异常)
若服务中引入了nacos的配置中心依赖,则要配置bootstrap.yml或bootstrap.properties文件,
配置nacos的配置中心依赖,和服务的服务名。
因为bootstrap文件是先于其他配置文件加载的,所以引入了nacos配置中心的依赖,则要配置bootstrap文件。
如果要使用nacos配置中心的配置,则要在配置中心中的配置管理新建配置,配置的DataId默认和服务名一致,具体可查看服务启动时的日志信息
在使用配置中的信息时,配合
@value("${ key }")
@RefreshScope //开启热更新 (nacos中配置刷新)
@RefreshScope 要在使用@value的类的上面使用
注解在类中使用。
<!--配置中心 配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
总结
nacos的注册中心的使用。
nacos和eureka的范围不同,Nacos的阈值是针对某个具体Service的,而不是针对所有服务的;但Eureka的自我保护阈值是针对所有服务的。nacos支持CP和AP两种;eureka只支持AP。nacos使用netty,是长连接;eureka是短连接,定时发送。
Nacos与Eureka的保护方式不同
Eureka保护方式:当在短时间内,统计续约失败的比例,如果达到一定阈值,则会触发自我保护的机制,在该机制下,Eureka Server不会剔除任何的微服务,等到正常后,再退出自我保护机制。自我保护开关(eureka.server.enable-self-preservation: false)
Nacos保护方式:当域名健康实例 (Instance) 占总服务实例(Instance) 的比例小于阈值时,无论实例 (Instance) 是否健康,都会将这个实例 (Instance) 返回给客户端。这样做虽然损失了一部分流量,但是保证了集群的剩余健康实例 (Instance) 能正常工作。
扩展:Nacos对比Zookeeper、Eureka之间的区别