• Nacos注册中心


    Nacos注册中心

    1.导入依赖

    父工程:

    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-alibaba-dependenciesartifactId>
        <version>2.2.5.RELEASEversion>
        <type>pomtype>
        <scope>importscope>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    客户端:

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.修改配置文件

    在spring下

    spring:
     cloud:
       nacos:
        server-addr: localhost:8848 #nacos服务地址
    
    • 1
    • 2
    • 3
    • 4

    注意:将eureka的配置注释

    打开 http://192.168.67.1:8848/nacos/index.html

    注册成功:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LQ4E4lAm-1660615242295)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220815105202648.png)]

    服务集群属性

    1.修改application.xml文件

    cloud:
      nacos:
        server-addr: localhost:8848 #nacos服务地址
        discovery:
          cluster-name: sh #集群名称
    
    • 1
    • 2
    • 3
    • 4
    • 5

    集群属性发生改变

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeoKdG9S-1660615242296)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220815105416986.png)]

    NacosRule负载均衡

    1. 使用orderserver优先使用本地集群

    1.修改ordersever的配置文件

    cloud:
      nacos:
       server-addr: localhost:8848 #nacos服务地址
       discovery:
         cluster-name: HZ  #集群名称
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.在orderserver中设置负载均衡的IRule为NacosRule,这个规则会优先寻找与自己同集群的服务

    userserver:
       ribbon:
         NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
    
    • 1
    • 2
    • 3
    • 在本地集群内的多个服务采用随机访问
    • 当本地集群没有服务时,会跨集群访问(控制台会有警告)

    根据权重负载均衡

    image-20220813104437088

    当权重设置为0时,该服务不会被访问

    环境隔离-namespace

    1.创建命名空间

    image-20220813105303629

    image-20220813105336057

    2.修改配置文件

    cloud:
      nacos:
        server-addr: localhost:8848 #nacos服务地址
        discovery:
          cluster-name: SH #集群名称
          namespace: 8ab87621-eed5-4091-8c5d-ca7fe33fe0ff   #dev环境的uuid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    不同namespace下的服务不可见

    Nacos和Eureka的对比

    Nacos的服务实例分为两种类型:

    • 临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。
    • 非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。
    cloud:
      nacos:
       server-addr: localhost:8848 #nacos服务地址
       discovery:
         cluster-name: HZ  #集群名称
         namespace: 8ab87621-eed5-4091-8c5d-ca7fe33fe0ff #dev环境
         ephemeral: false #修改为非临时实例
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Nacos与eureka的共同点

    • 都支持服务注册和服务拉取
    • 都支持服务提供者心跳方式做健康检测

    Nacos与Eureka的区别

    • Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
    • 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
    • Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
    • Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
  • 相关阅读:
    Linux真的很难吗?文末送5本《Linux运维之道(第3版)》
    mysql多表联查--牛客刷题分享
    MySQL8.0中你不得不知道的索引新特性
    HarmonyOS之运行Hello World
    CentOS 系统如何在防火墙开启端口
    c++ 新的函数声明语法
    ROS1云课→05消息类型
    Springboot+网上投资借贷中介服务 毕业设计-附源码221506
    微信小程序直传腾讯云COS并对图片持久化文字水印案例
    tftpd文件传输工具的学习记录
  • 原文地址:https://blog.csdn.net/qq_57907966/article/details/126360029