Nacos注册中心

一、安装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、多环境配置共享

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容