首页 > 其他分享 >springcloud -nacos-配置中心-接入

springcloud -nacos-配置中心-接入

时间:2022-11-23 14:47:26浏览次数:53  
标签:接入 springcloud boot nacos spring org config properties

1.nacaosClient接入:

  pom.xml引入依赖

    

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>1.3.1</version>
</dependency>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
</dependency>

  添加nacosconfig配置

@Configuration
public class NacosConfig {

    @Bean
    public ConfigService configService() throws NacosException {
        final Properties properties = new Properties();
        //设置Nacos节点,对应的IP地址。
        properties.setProperty(PropertyKeyConst.SERVER_ADDR,"127.0.0.1:8848");
        //设置命名空间。
        properties.setProperty(PropertyKeyConst.NAMESPACE,"……");
        //如果开启Nacos权限校验,设置用户名。
        properties.setProperty(PropertyKeyConst.USERNAME,"nacos");
        //如果开启Nacos权限校验,设置用户密码。
        properties.setProperty(PropertyKeyConst.PASSWORD,"nacos");
        //设置获取配置信息的长轮训超时时间。
        properties.setProperty(PropertyKeyConst.CONFIG_LONG_POLL_TIMEOUT,"3000");
        //设置获取配置信息失败之后,重试的次数。
        properties.setProperty(PropertyKeyConst.CONFIG_RETRY_TIME,"5");
        //设置是否开启客户端主动拉取最新的配置信息。
        properties.setProperty(PropertyKeyConst.ENABLE_REMOTE_SYNC_CONFIG,"true");
        //设置最大重试次数。
        properties.setProperty(PropertyKeyConst.MAX_RETRY,"5");
        //构造一个ConfigService实例
        ConfigService configService = NacosFactory.createConfigService(properties);
        return configService;
    }
}

  调用获取nacos配置

@Component
public class NacosConfigManager {

    @Resource
    private ConfigService configService;

    @PostConstruct
    private void init() throws NacosException {
        String data=configService.getConfig("use-nacos-client-nacos-config","use-nacos-client-nacos-config",2000);
        System.out.println("通过Nacos Client 从Nacos配置中心获取配置信息为:"+data);
    }

}

  2.api 接入

    pom.mxl引入依赖 

  

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

  初始化restTemplate

@Configuration
public class OpenApiConfig {
    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(2000);
        requestFactory.setReadTimeout(2000);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return restTemplate;
    }
}

  通过restTemplate读取配置信息

@Component
public class ReaderConfigManager {

    @Resource
    private RestTemplate restTemplate;

    //使用RestTemplate访问Nacos Config的Open API
    @PostConstruct
    public void readConfig(){
        String url="http://127.0.0.1:8848/nacos/v1/cs/configs?dataId={dataId}&group={group}&tenant={tenant}";
        Map<String,String> params=new HashMap<String,String>(16);
        params.put("dataId", "openapi-nacos-config");
        params.put("group", "openapi-nacos-config");
        params.put("tenant","c7ba173f-29e5-4c58-ae78-b102be11c4f9");
        //入参
        ResponseEntity<String> responseEntity=restTemplate.getForEntity(url,String.class,params);
        String result=responseEntity.getBody();
        System.out.println("通过Open API 从Nacos配置中心获取配置信息为:"+result);
    }
}

  3.springcloudAlibabaConfig接入

    pom.xml引入

  

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

  新增配置文件bootstrap.yaml

  

spring:
  application:
    name: spring-cloud-alibaba-config
  cloud:
    nacos:
      config:
        namespace: ……
        group: spring-cloud-alibaba-config
        password: nacos
        enable-remote-sync-config: true
        server-addr: 127.0.0.1:8848
        username: nacos
        name: spring-cloud-alibaba-config
        file-extension: properties
        extension-configs:
          - data-id: spring-cloud-alibaba-config-test.yaml
            group: spring-cloud-alibaba-config
            namespace: ……
            refresh: true
server:
  port: 8889

  新增application.properties

spring.youxia.config.name=test2
spring.application.name=spring-cloud-alibaba-config

  在nacos中新增配dataId 为spring-cloud-alibaba-config.properties的配置文件 ,其中配置

spring.youxia.config.name=test20
获取配置文件代码:
@Configuration
@RefreshScope
public class ConfigReader {

    @Autowired
    private NacosConfig nacosConfig;

    @PostConstruct
    public void init() {
        Executors.newCachedThreadPool().execute(new ConfigThread());
    }

    class ConfigThread implements Runnable {
        @Override
        public void run() {
            while (true) {
                System.out.println("使用Spring Cloud Alibaba接入Nacos配置中心,获取配置信息name为:" + nacosConfig.getName());
                System.out.println("使用Spring Cloud Alibaba接入Nacos配置中心,获取配置信息value为:"+nacosConfig.getValue());
                try {
                    Thread.sleep(6000);
                } catch (InterruptedException e) {
                    System.out.println(e.getMessage());
                }
            }
        }
    }
}

 

@Data
@Configuration
@RefreshScope
@ConfigurationProperties (prefix = "spring.youxia.config")
public class NacosConfig {
    private boolean name;
    
}

  

 

 

标签:接入,springcloud,boot,nacos,spring,org,config,properties
From: https://www.cnblogs.com/heshana/p/16918193.html

相关文章

  • nacos运行一段时间后CPU飙升问题处理
    如果你的nacos运行一段时间后CPU飙升问题,请首先看看它运行的jdk环境是不是1.8+版本的,nacos运行的官方jdk环境为jdk1.8+。如若jdk版本不对,请修改系统环境变量或者修改nacos......
  • 摄像机机如何使用GB28181协议接入上级视频网关
    摄像机机如何使用GB28181协议接入上级视频网关1、打开浏览器,输入摄像机的IP地址回车,输入摄像机的用户名和密码,登录摄像机。 2、找到配置页面->网络->高级配置->平台接......
  • 解决方案(14) golang pprof接入业务同端口
    前言声明:本文不对pprof基础做讲解,详情可以查阅https://studygolang.com/pkgdoc找到net/http/pprofgolangpprof官方介绍里,是采用了默认6060端口,单独开辟了应用进程的ppr......
  • nacos启动失败
    报错如下:通过第二个圈可以看出,没有发现9848端口,才想起来自己SpringCloudAlibaba依赖对应的nacos版本是2.0.4,而启动的nacos服务却是1.x版本,才导致这个报错。下面是wi......
  • USB设备判断接入和移除
    目录以沁恒的CH582芯片为例,主机模式下,在R8_USB_INT_EN中可以使能RB_UIE_DETECT位,由中断来提醒检测USB设备的接入和移除;从机模式下,USB设备没有这样的中断功能(上述寄存器的......
  • iOS原生接入Flutter
    官方文档:https://flutter.cn/docs/development/add-to-app/ios/project-setup原生的oc写的代码,新的需求页面想要用flutter来写,那么如何在原生项目里加入flutter呢?1、新建......
  • 2流高手速成记(之九):基于SpringCloudGateway实现服务网关功能
    咱们接上回 上一节我们基于Sentinel实现了微服务体系下的限流和熔断,使得整个微服务架构的安全性和稳定性上升了一个台阶篇尾我们引出了一个问题,众多的微服务节点,我们如......
  • centos7安装配置nacos
    1、nacos1.1下载:https://github.com/alibaba/nacos/releases?page=42、安装配置https://blog.csdn.net/yangxiao_hui/article/details/106860041?spm=1001.2101.3001.......
  • Springcloud学习笔记52--通过ApplicationContextAware接口从spring上下文中获取到需要
    1.背景在spring项目中,bean之间的依赖关系是spring容器自动管理的,但是一个项目中有些类不在spring容器中却需要使用spring管理的bean,这时候不能通过正常的方式(注解等方式)......
  • nacos 配置迁移
    迁移nacos的配置文件,欲把机器A上的nacos配置文件加到机器B上的nacos中 step1:将机器A上的配置文件导出并上传到机器B上若两台机器联通,直接通过接口下载curl--......