• Nacos注册中心


    Nacos

    安装

    https://nacos.io/zh-cn/

    源码安装

    第一步:利用Gitee获取nacos在github上的代码到自己的gitee仓库中

    在这里插入图片描述

    https://github.com/alibaba/nacos.git

    第二步:下载源码到本地。

    第三步:使用maven编译代码。

    # 先切换到master分支
    git checkout master
    # 使用如下命令编译源码
    mvn -Prelease-nacos -Dmaven.test.skip=true -Drat.skip=true clean install -U
    
    • 1
    • 2
    • 3
    • 4

    第四步:编译好的内容在distribution目录下

    在这里插入图片描述

    在这里插入图片描述

    第五步:把zip文件放到其他目录中,并解压。

    在这里插入图片描述

    第六步:修改配置conf目录下的配置文件,添加secretkey。
    在这里插入图片描述

    nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
    
    • 1

    第七步:启动nacos F:\env\nacos\bin目录下

    startup.cmd -m standalone
    
    • 1

    Nacos环境测试

    https://nacos.io/zh-cn/docs/v2/quickstart/quick-start.html

    #服务注册
    curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
    
    #服务发现
    curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
    
    #发布配置
    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
    
    #获取配置
    curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Nacos服务的注册与发现

    https://nacos.io/zh-cn/

    https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

    父POM

    注意版本号的选取。

        <packaging>pompackaging>
    
        <properties>
            <spring.cloud-version>Hoxton.SR10spring.cloud-version>
            <springboot-version>2.2.9.RELEASEspringboot-version>
            <spring.cloudalibaba-version>2.2.9.RELEASEspring.cloudalibaba-version>
        properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloudgroupId>
                    <artifactId>spring-cloud-dependenciesartifactId>
                    <version>${spring.cloud-version}version>
                    <type>pomtype>
                    <scope>importscope>
                dependency>
                <dependency>
                    <groupId>org.springframework.bootgroupId>
                    <artifactId>spring-boot-dependenciesartifactId>
                    <version>${springboot-version}version>
                    <type>pomtype>
                    <scope>importscope>
                dependency>
                <dependency>
                    <groupId>com.alibaba.cloudgroupId>
                    <artifactId>spring-cloud-alibaba-dependenciesartifactId>
                    <version>${spring.cloudalibaba-version}version>
                    <type>pomtype>
                    <scope>importscope>
                dependency>
            dependencies>
        dependencyManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    模块 provider

    微服务模块中引入nacos依赖

    >
        >com.alibaba.cloud>
        >spring-cloud-starter-alibaba-nacos-discovery>
    >
    
    • 1
    • 2
    • 3
    • 4

    yml配置

    server:
      port: 8070
    spring:
      application:
        name: service-provider  #服务名称
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848  #nacos注册中心的地址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    启动类NacosProviderApplication

    @SpringBootApplication
    @EnableDiscoveryClient  // 注册到nacos中
    public class NacosProviderApplication {
    
    
    
        public static void main(String[] args) {
            SpringApplication.run(NacosProviderApplication.class, args);
        }
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
        @RestController
        public class EchoController {
            
            @Value("${server.port}")
        	private Integer port;
            
            @RequestMapping(value = "/echo/{string}", method = RequestMethod.GET)
            public String echo(@PathVariable String string) {
                return "Hello Nacos Discovery: "+port+"--->" + string;
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    模块 consumer

    pom文件与producer一致

    server:
      port: 8090
    spring:
      application:
        name: service-consumer
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    启动类NacosConsumerApplication

    @SpringBootApplication
    @EnableDiscoveryClient  // 注册到nacos中  不管是消费者还是提供者,都是这个注册到nacos中
    public class NacosConsumerApplication {
    
        @LoadBalanced
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
        public static void main(String[] args) {
            SpringApplication.run(NacosConsumerApplication.class, args);
        }
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
        @RestController
        public class TestController {
    
            private final RestTemplate restTemplate;
    
            @Autowired
            public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}
    
            @RequestMapping(value = "/echo/{str}", method = RequestMethod.GET)
            public String echo(@PathVariable String str) {
                return restTemplate.getForObject("http://service-provider/echo/" + str, String.class);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Nacos服务配置中心

    https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

    POM文件

    <dependencies>
    
            <dependency>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-starter-webartifactId>
            dependency>
    
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
            dependency>
    
            <dependency>
                <groupId>com.alibaba.cloudgroupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
            dependency>
        dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    yml配置文件

    文件名为:bootstrap.yml

    spring:
      application:
        name: config-demo
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848
          config:
            group: mygroup
            file-extension: yaml
      profiles:
        active: dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Nacos配置中心添加服务配置

    在这里插入图片描述

    在这里插入图片描述

    注意需要在bootstrap配置文件中声明nacos中使用的配置文件的扩展名

    spring.cloud.nacos.config.file-extension=yaml
    
    • 1
    spring:
      application:
        name: config-demo #跟配置的前缀名字
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848
          config:
            file-extension: yaml
      profiles:
        active: test #跟配置的后缀 设备名匹配
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果需要指定配置文件的分组,如下

    spring.cloud.nacos.config.group=dev
    .cloud.nacos.config.file-extension=yaml
    
    • 1
    • 2
    spring:
      application:
        name: config-demo #跟配置的前缀名字
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848
          config:
            file-extension: yaml
      profiles:
        active: test #跟配置的后缀 设备名匹配
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果需要指定配置文件的分组,如下

    spring.cloud.nacos.config.group=dev
    
    • 1
  • 相关阅读:
    php-fpm自定义zabbix监控
    竞赛 题目:基于python的验证码识别 - 机器视觉 验证码识别
    xdebug 远程调试 vsCode
    SpringBoot 学习(九)Redis
    JAVA开发中的Maven搭建以及相关操作
    【Try to Hack】IDS入侵检测系统
    Spring Boot:利用JPA进行数据库的增改
    Pycharm中使用远程JupyterLab以及JupyterHub登录问题
    深度学习实战60-基于深度学习模型搭建人脸识别系统,用最简单的方式实现人脸识别。
    6.拷贝移动及文件内容命令
  • 原文地址:https://blog.csdn.net/qq_53374893/article/details/132909922