Nacos注册中心

一、构建注册nacos服务

1.父工程导入依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2。子工程导入依赖

<!-- nacos客户端依赖包 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

3.修改yml

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud-user?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: userservice #user服务名称
  cloud:
    nacos:
      server-addr: localhost:8848
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
#eureka:
#  client:
#    service-url: #eureka地址信息
#      defaultZone: http://localhost:10086/eureka

二、nacos服务分级存储模型

如何配置集群 

1.修改所在集群

2.配置优先选择同一集群进行负载均衡访问

修改ribbon(NacosRule在同一集群中使用random策略,没有同一集群的服务就访问其他集群)

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/cloud-order?useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice #eureka服务名称
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: SH #集群名称
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
#eureka:
#  client:
#    service-url: #eureka地址信息
#      defaultZone: http://localhost:10086/eureka
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则
ribbon:
  eager-load:
    enabled: true
    clients: userservice

3.根据权重负载均衡

权重为0的话他不会被访问,比如想要升级一个服务,可以把这个服务的权重设为0,逐渐扩大权重如果有问题也只有小部分知道

4.命名空间

不同命名空间内的服务相互隔离,即如果orderservice和userservice不在同一namespace则无法相互访问,如图namespace内有很多个group,这些group内的service可能是因为隶属于同一功能模块所以放在同一group,service以下就是集群,集群下就是实例

新建命名空间

改变某个service的命名空间

5.临时实例与非临时实例

临时实例:每隔一定时间做心跳

非临时实例:nacos主动询问服务,服务不需要向nacos发送心跳,且nacos不会剔除非健康状态的服务,而仅仅将其标记为非健康状态

eureka采用pull,而nacos采用pull+push(如果nacos发现有实例挂掉会立即向服务消费者发送消息)

6.nacos集群默认采用AP模式,当集群中存在非临时实例时变更为CP模式,eureka只支持AP模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值