一:下载nacos
打开github搜索nacos,选择历史版本,建议下载1.4版本的,较稳定
https://github.com/alibaba/nacos
二:下载完后解压文件,两种方式打开
1:双击启动
2:命令行启动
bin文件目录下进入终端,输入:startup.cmd -m standalone
3:启动成功后:
浏览器输入提供的网址就能进入到nacos的控制面板了,然后输入账号密码,默认都是nacos
至此,我们的nacos的配置就到这里结束了!
三:把服务注册到nacos
1:首先在项目中引路我们的配置文件(父项目子项目都要引入)
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2:配置子服务的yaml文件
spring: application: name: userservice #user的服务名称 cloud: nacos: server-addr: localhost:8848 #nacos服务地址
3:启动服务,刷新nacos控制面板
至此,我们的注册服务就到此结束了,使用起来的话跟Eureka是一样的
四:扩展,配置集群
1:在yaml文件中添加以下代码(cluster-name是集群名称,自定义)
spring:
application:
name: userservice #user的服务名称
cloud:
nacos:
server-addr: localhost:8848 #nacos服务地址
discovery:
cluster-name: JX
2:重新启动服务,刷新nacos
3:配置nacos优先匹配相同集群名称进行服务调用,配置规则
#Nacos配置规则(优先选择本地集群,本地集群挂掉后才会选择其他集群,但是日志会提示开发人员,这样就可以重新启动那个挂掉的服务)
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则
4:至此我们远程调用服务,就会优先调用集群名称相同的服务,除法项目名称的服务挂掉了,才会去调用其他服务来完成业务需求
五:扩展,权重
1:可以修改我们的服务权重来控制远程调用服务的频率
2:默认是1,假设我们有两个实例的服务AB,A服务机器老化较慢,B比较新,速度快,那么我们可以把A服务的权重调低
这样,调取服务时,就会大概率调用B服务
我们也可以把权重设置为0,这样就不会调用该服务