美文网首页
Nacos注册中心

Nacos注册中心

作者: kjy_112233 | 来源:发表于2022-05-04 15:15 被阅读0次

    一、安装Nacos

    (1)下载地址:https://github.com/alibaba/nacos/releases
    (2)配置端口、启动
    在解压文件中conf/application.properties设置端口默认是8848
    双击bin/startup.cmd启动服务
    命令行启动:在bin文件下开启黑窗口startup.cmd -m standalone

    二、注册服务到Nacos

    1、在cloud-demo父工程添加依赖
    <!--nacos的管理依赖-->
    <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客户端依赖
    <!-- nacos客户端依赖包 -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    3、在application.yml中添加Nacos地址
    server:
      port: 8088
    spring:
      application:
        name: orderservice
      cloud:
        nacos:
          server-addr: localhost:8848 # nacos服务地址
    
    4、服务拉取

    (1)url访问路径,用服务名称代替ip、端口

    String url = "http://orderservice/user/" + user.getOrderId();
    

    (2)在启动类中的RestTemplate添加负载均衡注解

        @Bean
        @LoadBalanced
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    

    三、Ribbon负载均衡

    (1)Ribbon负载均衡规则

    规则接口是IRule。默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询

    (2)负载均衡自定义两种方式

    配置灵活,但修改时需要重新打包发布

    @Bean
    public IRule randomRule() {
      return new RandomRule();
    }
    

    直观、方便无需重新打包发布,但是无法做全局配置

    userservice:
      ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则
    
    (3)Ribbon默认加载方式是懒加载。更改加载方式
    ribbon:
      eager-load:
        enabled: true # 开启饥饿加载
        clients: # 指定饥饿加载的服务名称
          - userservice
    

    四、Nacos分级存储模型

    1、在application.yml中设置集群属性
      cloud:
        nacos:  # nacos的地址信息
          server-addr: localhost:8848
          discovery:
            cluster-name: HZ #设置集群
    
    2、修改负载均衡规则,本地集群优先选择相互访问
    userservice:
      ribbon:
        NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则
    
    3、根据权重负载均衡

    编辑修改权重设置,设置为0不会被访问

    4、环境隔离

    (1)在命名空间设置新建命名空间,在application.yml中设置命名空间填写ID(不同环境不能相互访问)

      cloud:
        nacos:  # nacos的地址信息
          server-addr: localhost:8848
          discovery:
            cluster-name: HZ #设置集群
            namespace: 4d22cecf-3eba-400d-a2d1-f5a359f3f0eb #dev环境
    

    五、Nacos配置管理

    1、统一配置管理(配置热更新)

    配置管理——配置列表——点击加号——新建配置信息

    2、获取配置信息

    引入nacos配置管理依赖

    <!--nacos的配置管理依赖-->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    

    新建bootstrap.yml文件

    spring:
      application:
        name: orderservice #服务名称
      profiles:
        active: dev # 环境
      cloud:
        nacos:
          server-addr: localhost:8848 # nacos地址
          config:
            file-extension: yaml # 文件后缀名
    

    服务的读取

    @Component
    @ConfigurationProperties(prefix = "pattern")
    public class PatternProperties {
        private String dateformat;
    
        public void setDateformat(String dateformat) {
            this.dateformat = dateformat;
        }
    
        public String getDateformat() {
            return dateformat;
        }
    }
    
    3、多环境配置共享

    创建配置信息不添加环境名称

    相关文章

      网友评论

          本文标题:Nacos注册中心

          本文链接:https://www.haomeiwen.com/subject/bhmbyrtx.html