概述
1.配置集群
集群名称用于,微服务优先访问集群内服务,如果不可用才访问其他集群
a.先配置服务发现,并指定集群
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
cluter-name: GUANGZHOU # 集群名称,也就是机房位置
b. 配置负载均衡规则,这个规则会优先访问同一个集群的服务
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
c.启动多个服务之后,在nacos看到如下
d.注意将user-service的权重都设置为1
跨集群调用时候会显示
A cross-cluster call occurs,name = userservice, clusterName = HZ, instance = [Instance{instanceId='192.168.239.1#8082#SH#DEFAULT_GROUP@@userservice', ip='192.168.239.1', port=8082, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='SH', serviceName='DEFAULT_GROUP@@userservice', metadata={preserved.register.source=SPRING_CLOUD}}]
2.配置权重
Nacos根据权重负载均衡
部署场景: 服务器设备性能有差异,部分实例在的机器性能较好,另一些较差,性能好的承担更多的用户请求。权重为0时候不会被选用。
在nacos网页中可以修改权重。先将一个实例的权重设置为0,等没有用户的时候,在停机升级,等升级完成,在将配置设置为0。0001,放入部分用户进行测试,再逐步放开。
3.环境隔离 namespace
namespace用来做环境隔离
每个namespace都有一个id
不同namespace下的服务不可见
添加,id自动生成,也可以指定
代码中指定
spring:
cloud:
nacos:
discovery: #服务注册与发现
server-addr: localhost:8848 #nacos地址
username: nacos
password: nacos
namespace: 7c224294-afdb-48c8-9eb1-70e924382c76 #指定命名空间 可以删掉namespace不写默认public
4.配置密码
spring:
cloud:
nacos:
discovery: #服务注册与发现
server-addr: localhost:8848 #nacos地址
username: nacos
password: nacos
5.配置中心
spring:
cloud:
nacos:
discovery: #服务注册与发现
server-addr: localhost:8848 #nacos地址
username: nacos
password: nacos
namespace: 7c224294-afdb-48c8-9eb1-70e924382c76 #指定命名空间 可以删掉namespace不写默认public
#配置文件组成 : 通俗点 服务名称-指定环境.后缀名称 name-active.file-extension
config: #动态配置
server-addr: localhost:8848 #nacos地址
username: nacos
password: nacos
file-extension: yml #配置文件类型 非常重要后缀一定要一致 xxx.yml
namespace: 7c224294-afdb-48c8-9eb1-70e924382c76 #指定命名空间 可以删掉namespace不写默认public
6、注册原理
高级使用
把服务名的ip改成自己制定的域名
@Configuration
public class BeanInit{
/**
* 用于改变程序自动获取的本机ip
*/
@Bean
@Primary
public NacosDiscoveryProperties nacosProperties() {
NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties();
//此处我只改了ip,其他参数可以根据自己的需求改变
nacosDiscoveryProperties.setIp("xxx.com");
return nacosDiscoveryProperties;
}
}