Nacos注册中心

环境win11,jdk11,Nacos1.4.1,SpringBoot项目。

除了配置和Eureka不一样,其它都一样。

Nacos安装

GitHub的Release下载页:https://github.com/alibaba/nacos/releases

在bin目录:startup.cmd -m standalone,单机模式启动。

管理地址为:http://192.168.56.1:8848/nacos/index.html

 账号和密码都是Nacos。

添加Maven依赖

在父工程的pom.xml中添加依赖:


    com.alibaba.cloud
    spring-cloud-alibaba-dependencies
    2.2.5.RELEASE
    pom
    import

在子工程的pom.xml中添加依赖:


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery

项目中配置Nacos

配置nacos注册中心的地址:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nocos服务器地址

Nacos服务分级存储模型与调度问题

一个服务中可能有多个示例,Nacos根据地域来划分集群,相同地域的实例成为一个集群。

Nacos引入地域就是为了防止跨集群访问。

配置所在集群的名称:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nocos服务器地址
      discovery:
        cluster-name: SH           # 所在的集群名字

Nacos注册中心_第1张图片

Nacos注册中心_第2张图片

在所有微服务的权重都为1的情况下:

配置指定服务名称所执行的方法,这里配置优先选择与自己在同一集群的微服务,在与自己同一集群的微服务中随机访问

userservice: # 要做配置微服务的名称
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

 Nacos跨集群访问时会有一个警告。

根据权重负载均衡

权重在0-1之间,数字越大权限越高,在Nacos的控制台中控制,权重为0时,不会被访问。

权重为0时,服务器需要更新重启时使用,重启后权重小一些先放小部分用户进来,没问题再加大权重。

在控制台更改权重后不需要重启微服务。

Nacos注册中心_第3张图片

 环境隔离-namespace

结构:Namescpae包含Group,Group包含Service/Data。

一般是根据业务和地域划分,但是有时候会有开发环境、测试环境、生产环境的变化,要想做环境变化做隔离,就要用到namespace了。

同一命名空间的微服务只能与同一空间的微服务通信。 

命名空间在Nacos控制台中创建,如果不填写id,会自动生成uuid。

下面是配置命名空间的代码,namespace后面跟的是命名空间的id。

spring:
  cloud:
    nacos:
      server-addr: localhost:8848  # nocos服务器地址
      discovery:
        cluster-name: HZ
        namespace: 4d92420c-52d9-43e9-8b51-e27dd44dad86  #命名空间的uid

健康监测

Nacos默认会把微服务设置为临时示例。

临时实例:微服务向Nacos发送心跳信息,临时实例挂了时会被从列表中踢除

非临时实例:Nacos向微服务发送信息询问还活着吗,非临时实例挂了时不会被从列表中踢除,只会标记为不健康了,会等着这个服务恢复

Eureka客户端每隔30s向服务器拉取服务信息。

Nacos客户端每隔30s向服务器拉取服务信息,有服务挂了的时候会主动向客户推送变更消息

你可能感兴趣的:(微服务,Nacos,注册中心)