​​​​​    Nacos简介

  • Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。话不多说正片开始。

  • Nacos安装和启动

  • nacos可以直接在GitHub下载,选择所需的版本下载即可。下方放置下载链接。
  • nacos对应GitHub下载链接
  • 进入链接后,选择所需版本并点击对应格式下载

  • 下载完成后解压可以看到如下目录
  • 我们可以通过修改config目录下的 application.properties 文件修改nacos配置。比如端口号,其默认值为8848,是一个非常成功人士的端口,一般情况下无需修改。
  • 完成上述操作后我们可以试着启动nacos,首先进入bin目录下,路径栏输入cmd 进入命令行窗口,输入  startup.cmd -m standalone    即可启动nacos。成功界面如下
    startup.cmd -m standalone
  • 然后我们cv红框处的网址即可进入nacos图形界面工具

  • nacos的服务注册

  • 现在我们就来将我们的服务注册进nacos
  • 首先我们引入nacos服务发现依赖
  • <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
  • 其次在配置文件(yaml格式)进行如下简单nacos配置
spring:
  application:
    name: orderserver #注册的服务名称
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
      discovery:
        cluster-name: HZ #设置集群名称
  • 现在我们启动该服务,即可在nacos图形界面的服务列表中找到我们的服务

  • 现在我们的服务就已经注册完成了,
  • 利用图形化界面配置服务

  • 现在我们在注册user服务并实现热更新式配置
  • 首先引入nacos配置依赖
  • <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

  • 然后在user服务资源文件夹下创建 bootstrap.yml(优先于application.yml文件读取,以提前获得nacos地址用于读取存放在nacos的远程配置,) 文件,并写入如下代码
spring:
  application:
    name: userservice #服务名称
  profiles:
    active: dev #服务所处环境,dev表示开发环境
  cloud:
    nacos:
      server-addr: localhost:8848 #nacos地址
      config:
        file-extension: yaml #nacos远程配置格式
  • 启动服务
  • 现在我们来到图形化界面,打开配置管理>>配置列表,点击创建配置打开如下界面

  • 其中dataid的格式是固定的: “服务名”+ “-”+“环境名” .格式名,分别对应bootstrap.yml文件中的userservice , dev,  yaml。 所以我的dataid就是: userservice-dev.yaml

  • 描述按情况写

  • 选择格式为yaml

  • 配置内容我就以日期格式化的模板为例,结果如下

  • 点击发布,我们就完成了远程配置

  • 值得注意的是,如果不指定服务环境,即可命名为:userservice.yaml。它将对所有环境的用户服务生效。如果同一个配置同时存在上述两种配置和代码中的本地配置则: userservice-dev.yaml  >  userservice.yaml > 本地配置

  • 最后一步,回到我们的代码上,如下声明一个类:

  • import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    
    @ConfigurationProperties(prefix = "pattern") //这里的prefix用来指明前缀
    @Data
    @Component
    public class Pattern {
        private String dateformat; //这里变量名必须是配置的名称
    }
  • 现在这个类已经在spring容器中了,我们就可以直接通过自动装配在服务的其他地方用Pattern对象获取字符串:yyyy/MM/dd HH:mm:ss 了

  •   @Autowired
        private Pattern dateformat;
        @GetMapping("/now")
        public String getNow(){
            log.info("dataformat: {}", dateformat);
            return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat.getDateformat()));
        }

  • ok,现在我们启动服务,输入http://localhost:端口号/user/now 就可以获得格式化后的日期了

  • 注意:我们这样实现的热更新配置在更改nacos管理的远程配置时,无须重启即可生效

  • 结束

  • 以上就是nacos·的入门介绍,未来将更新nacos的负载均衡策略,新人作者,多多关照哈~拜拜↑拜拜↓拜拜↑
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐