• springcloud(9)Nacos基本操作


    Nacos是什么

          和Eureka,zookeeper,consul相同,Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心。Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。那么Nacos到底是什么呢, 总结为官网一句话就是:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    下面仅介绍nacos的配置,不涉及深层的原理。

    1.安装和下载

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

    选择合适稳定的版本即可。下载完直接解压即可。

    2.使用注意事项

    启动单个nacos如果报错可以先去配置好数据库模式和单机模式启动。

    conf文件夹下找到application.properties文件添加如下配置。根据自己的数据库情况配置。

     spring.datasource.platform=mysql
     db.num=1
     db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
     db.user=root
     db.password=root

    同理此目录下还有数据库的一些文件。导入自己的MySQL中

    配置单机模式,在bin目录下面找到startup.cmd文件更改,设为standalone单机模式。

     在bin目录下面启动cmd窗口,然后运行startup.cmd即可启动。默认端口8848访问地址

    http://localhost:8848/nacos/

    密码也是默认nacos

     3.服务注册

    编写测试的服务注册应用。

    关键的pom依赖,其他的和之前的cloud应用一样。

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

    yml文件

    server:
      port: 9003
    spring:
      application:
        name: nacos-payment-provider
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #配置Nacos地址
    management:
      endpoints:
        web:
          exposure:
            include: '*'

    测试controller

    @RestController
    public class PaymentController {
        @Value("${server.port}")
        private  String serverport;
    
        @GetMapping(value = "/payment/nacos/{id}")
        public String getpayment(@PathVariable("id") Integer id){
            return "Hello Nacos Discovery: " + serverport + "	 id: " + id;
        }
    }

    启动项目发现

     在服务列表可以查看到,而且很多详细信息可以自行查看,且配置多个项目的时候,nacos可以自带负载均衡的功能。

    4.配置中心

    之前在config和bus中为了完成消息配置等的同步和全局广播需要费很大的功夫,而nacos直接省去了很多的复杂操作,用可视化的操作完成了config的配置。

    创建配置应用类

    pom关键的依赖

          <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
            <!-- SpringCloud ailibaba nacos-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>

    application.yml

    spring:
      profiles:
    #    active: dev #表示开发环境
    #    active: test
          active: info

    bootstrap.yml,比application的权限更大

    server:
      port: 3377
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式配置
            group: TEST_GROUP
            namespace: 8f9b7283-0c9a-45f8-92d5-ca116f3ed1b9
    #${prefix}-${spring.profile.active}.${file-extension}  dataid的格式
    # ${spring.application.name}-${spring.profile.active}.${file-extension}
    # nacos-config-client-dev.yml

    配置类controller

    @RestController
    @RefreshScope
    public class ConfigController {
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/config/info")
        public String getConfigInfo() {
            return configInfo;
        }
    }

    在配置中心配置信息。

     用自己的controller测试。

    成功访问到配置的信息(此处是我之前设置好的其他配置信息)

    一些配置信息含义

     命名空间可以自己设置,相当于不同的工作区间。

     在自己的yml文件中设置好不同的信息,就可以匹配不同地方的信息。

    暂时的一些基本使用信息就这些,下章继续nacos的集群操作。

     本篇所有代码均在GitHub:

  • 相关阅读:
    python 小兵(4)之文件操作 小问题
    python 小兵(4)之文件操作
    排序
    Java的数据结构
    基本数据操作
    部署tomcat到Linux
    找工作的一些知识积累
    BootStrap
    操作系统
    做Global Admin
  • 原文地址:https://www.cnblogs.com/lin530/p/13992804.html
Copyright © 2020-2023  润新知