SpringBoot集成Nacos

SpringBoot集成Nacos

Nacos启动/关闭

#先启动mysql
systemctl status mysql
systemctl start mysql

#跳转到对应目录下
[root@hadoop100 nacos]# cd /opt/software/nacos/bin

#单机模式
[root@hadoop100 bin]# ./startup.sh -m standalone

#集群模式
[root@hadoop100 bin]# ./startup.sh 或者 -p+端口号

#关闭nacos
[root@hadoop100 bin]# ./shutdown.sh

SpringBoot动态引入Nacos配置

使用pom文件动态导入到application.yml中,实现数据隔离+环境切换

1、父pom中引入对资源文件的过滤处理,替换占位符

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

2、声明好资源配置数值

  <profiles>
    <!-- 开发 -->
    <profile>
      <id>dev</id>
      <properties>
        <!--当前环境-->
        <profile.name>dev</profile.name>
        <!--Nacos服务地址-->
        <config.server-addr>192.168.xxx.xxx:8848</config.server-addr>
        <!--Nacos配置中心命名空间,-->
        <config.namespace>257a31db-60ea-452f-bd18-c836d53e6faf</config.namespace>
        <!--Nacos配置分组名称-->
        <config.group>DEFAULT_GROUP</config.group>
        <!--Nacos用户名-->
        <config.username>nacos</config.username>
        <!--Nacos密码-->
        <config.password>nacos</config.password>
      </properties>
    </profile>
    <!-- 测试 -->
      
    <!-- 生产 -->
   </profiles>

3、appliacton.yml声明

server:
  port: 8000
spring:
  application:
    name: service-order
  profiles:
    active: @profile.name@

  cloud:
    nacos:
      server-addr: @config.server-addr@
      username: @config.username@
      password: @config.password@
      config:
        import-check:
          enabled: false
        namespace: @config.namespace@
        group: @config.group@
      discovery:
        namespace: @config.namespace@
        group: @config.group@

  config:
    import:
      - optional:nacos:service-order.yml
      - optional:nacos:service-order-@profile.name@.yml


4、maven选择相应环境构建,启动项目

在这里插入图片描述

Nacos的远程调用和配置监听

参考尚硅谷教程
https://www.bilibili.com/video/BV1UJc2ezEFU

远程调用

下单场景

在这里插入图片描述

  private Product getProductInfo(Long pid) {
    //获取该服务的所有实例
    // List<ServiceInstance> instances = discoveryClient.getInstances("service-product");
    //取第一个实例
    //ServiceInstance serviceInstance = instances.get(0);
    //拼接出商品服务的远程url
    // 传统方法是通过实例去拿到ip端口拼接,这里声明了负载均衡注解后只需要写服务名称即可
    String url = "http://service-product/product/getById?id={productId}";
    Map<String, Long> map = new HashMap<>();
    map.put("productId", pid);
    return restTemplate.getForObject(url, Product.class, map);
  }
@Configuration
public class RestTemplateConfig {

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

}

Nacos配置监听

  @Bean
  ApplicationRunner applicationRunner(NacosConfigManager nacosConfigManager){
    return new ApplicationRunner() {
      @Override
      public void run(ApplicationArguments args) throws Exception {
        ConfigService configService = nacosConfigManager.getConfigService();
        configService.addListener("service-order.yml", "DEFAULT_GROUP", new Listener() {
          @Override
          public Executor getExecutor() {
            return  Executors.newFixedThreadPool(1);
          }

          @Override
          public void receiveConfigInfo(String s) {
            System.out.println(s);
            System.out.println("配置变动监听");
          }
        });
        System.out.println("======");
      }
    };
  }

Nacos热点问题

1、注册中心宕机,远程调用还能成功吗?

  • 调用过:远程调用不在依赖注册中心,可以通过(存在缓存)
  • 没调用过:(第一次发起远程调用)不能通过
    在这里插入图片描述

2、Nacos中的数据集和 application.próperties 有相同的 配置项,哪个生效?

在这里插入图片描述

命令行参数 > 系统属性 > 环境变量 > Nacos 配置 > 本地配置文件

SpringBoot可以通过集成Nacos来实现配置管理和服务发现的功能。 首先,通过集成Nacos配置管理功能,SpringBoot可以从Nacos中获取配置项的值。Nacos提供了动态配置的能力,可以在Nacos中添加多个配置集,每个配置集下可以有多个配置项。当Nacos中的配置项发生修改时,SpringBoot可以及时获取到最新的配置值。这样,在开发和部署过程中不需要重新打包部署,可以动态更新配置,提高了系统的灵活性和可维护性。你可以在中找到更多关于Spring BootNacos的新功能使用手册。 其次,通过集成Nacos的服务发现功能,SpringBoot可以将自己注册到Nacos服务器,并从Nacos中获取其他服务的信息。Nacos作为服务发现的中心,可以管理和监控所有注册在其上的服务实例。SpringBoot可以使用Nacos提供的服务发现功能,实现服务之间的调用和负载均衡。你可以在中找到关于Spring Boot集成Nacos服务发现的具体配置和使用方式。 要完成SpringBoot集成Nacos,你需要在Spring Boot项目的pom.xml文件中添加Nacos相关的依赖。例如,你可以在中找到Nacos配置依赖和中找到Nacos的服务发现依赖。 总结起来,通过集成NacosSpringBoot可以实现配置管理和服务发现的功能,提高系统的灵活性和可维护性。你可以参考上述提供的链接和依赖来了解更多关于SpringBoot集成Nacos的详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值