Nacos-注册中心
本文最后更新于263 天前,其中的信息可能已经过时,如有错误请发送邮件到qiqin-chang@qq.com

注册中心:

基础配置:

依赖:

<!--nacos 服务注册发现-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<!--微服务web项目启动-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置:

服务注册:

spring:
  application:
    name: user-service # 服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址

服务发现:

在启动类上添加:

@EnableDiscoveryClient //开启服务发现功能

实现负载均衡的远程调用:

依赖:

<!--loadbalancer 负载均衡-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

注解式负载均衡:

@LoadBalanced //注解式负载均衡

配置类:

@Configuration
public class UserConfig {
​
    
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

远程调用:

//基于注解的负载均衡
private Product getUserFromRemoteWithLoadBalanceAnnotation(Long id) {
    //1.获取到商品服务所在的所有机器IP+port
    String url = "http://user-service/user/" + Id; //根据服务名称自动负载均衡的匹配服务地址
    //2.给远程发送请求
    User user = restTemplate.getForObject(url, Product.class);
    return user;
}

配置中心:

配置隔离:

常见SpringBoot环境:

  • dev 开发环境
  • test 测试环境
  • prod 生产环境

添加共享配置:

在配置管理->配置列表中点击+新建一个配置:

在弹出的表单中填写信息:

拉取共享配置:

依赖:

<!--nacos 配置中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

<!--读取bootstrap文件-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

配置:

配置导入规则:先导入优先,外部导入优先

server:
  port: 8000
​
spring:
  profiles:
    active: dev #激活某一环境
  application:
    name: user-service # 服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        import-check:
          enabled: false #禁用导入检查
        namespace: ${spring.profiles.active:public} #使用选定环境的命名空间中的配置 -选定默认值为public
​
#以下为不同开发环境配置
#开发环境
---
spring:
  config:
    activate:
      on-profile: dev
    import:
      - nacos:common.yaml?group=order #按需加载对应组群的配置文件
      - nacos:database.yaml?group=order
​
#测试环境
---
spring:
  config:
    activate:
      on-profile: test
    import:
      - nacos:database.yaml?group=order
​
#生产环境
---
spring:
  config:
    activate:
      on-profile: prod
    import:
      - nacos:common.yaml?group=order

配置自动刷新:

自动刷新:

类注解:

@RefreshScope

配置类成员变量注解:

@value

批量绑定自动刷新:

配置类注解:

@ConfigurationProperties

配置类方法:

@Component
@ConfigurationProperties(prefix = "user")//配置批量绑定在nacos下,可无需@RefreshScope实现自动刷新,以驼峰命名代替'-'格式
@Data
public class UserProperties {
​
    String timeout;
​
    String autoConfirm;
​
    String dbUrl;
}

监听配置变化:

启动类方法:

//1.项目启动就监听配置文件的变化
//2.发生变化后拿到变化的值
//3.发送邮件
@Bean
ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager) {
    return args -> {
        ConfigService configService = nacosConfigManager.getConfigService();
        configService.addListener("user-service.yaml",
                "DEFAULT_GROUP",new Listener() {
​
                    @Override
                    public Executor getExecutor() {
                        return Executors.newFixedThreadPool(4);
                   }
​
                    @Override
                    public void receiveConfigInfo(String configInfo) {
                        System.out.println("变化的配置信息" + configInfo);
                        System.out.println("邮件通知...");
                   }
               });
   };
}

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇