Nacos注册中心

  • Post author:
  • Post category:其他




概述

在这里插入图片描述

在这里插入图片描述



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、注册原理


Nacos注册中心5-Client端(更新本地服务)



高级使用



把服务名的ip改成自己制定的域名

@Configuration
public class BeanInit{

    /**
     * 用于改变程序自动获取的本机ip
     */
    @Bean
    @Primary
    public NacosDiscoveryProperties nacosProperties() {
         NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties();
         //此处我只改了ip,其他参数可以根据自己的需求改变
         nacosDiscoveryProperties.setIp("xxx.com");
         return nacosDiscoveryProperties;
    }
}

在这里插入图片描述



版权声明:本文为Blueeyedboy521原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。