spring cloud alibaba系列nacos

“世人慌慌张张,不过图碎银几两,偏这碎银几两,能解万种惆怅,可保老人晚年安康,可护稚子入得学堂。可这碎银几两,断了儿时的梦想, 让少年染上沧桑,压弯脊梁。”


之前我们使用的注册中心时eureka,但eureka已经停止维护,netflix的很多产品都停止维护了,没办法我们就需要另寻别爱了。
nacos是阿里的开源项目,比起eureka有很多的好处,主要是在持续的更新。
nacos和eureka对比参考:https://www.jianshu.com/p/afd7776a64c6
今天我们来从eureka转移到nacos

注册中心

  • 首先我们需要运行一个nacos服务器,目前应该是不能像eureka那样直接用spring boot部署,我们需要到gethub下载
    https://github.com/alibaba/nacos/releases,然后到bin目录下即可看见运行的脚本,运行即可
    在这里插入图片描述
    然后访问ip:8848即可访问nacos注册中心,你也可以修改config目录下的application.properties的配置,修改端口等
    在这里插入图片描述
    然后我新建了了三个命名空间分别是dev,test,prod用来标识不同的开发环境
  • 移除eureka的依赖,添加nacos的依赖
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
  • 修改配置,移除eureka的配置, 添加nacos的配置
spring:
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: ${settings.nacos.addr}
        namespace: ${settings.nacos.namespace.${spring.profiles.active}}
##### nacos配置参数   ####
settings:
  nacos:
    addr: 192.168.31.37:38001
    namespace:
      dev: 190bfcff-e39e-42d7-ae87-af2690a4d409

这应该很容易就能看懂,namespace下的dev是我刚刚定义的,后面是dev的DataId,在nacos的命名空间中可以看见,
然后运行,在nacos的服务列表的dev空间下面即可看见注册的服务
在这里插入图片描述

配置中心

nacos不仅是注册中心,同时也是配置中心,相比spring cloud gateway它能更容易的实现配置的刷新

  • 添加依赖
 <dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
 </dependency>
  • nacos添加配置文件
    在nacos中添加我们的配置文件
    在这里插入图片描述
    点击加号即可添加配置,命名规则为${spring.application.name}.${spring.profiles.active}.${extension},就是微服务名称加开发环境加扩展名
  • 服务添加配置,添加bootstrap.yaml配置文件,bootstrap的配置级别高于application
  • 各种文件的加载顺序我在spring cloud gateway中已经写过了
spring:
  application:
    name: gmsj-auth
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        server-addr: ${settings.nacos.addr}
        namespace: ${settings.nacos.namespace.${spring.profiles.active}}
        file-extension: yaml
        shared-configs: shareConfig.yaml
        refresh-enabled: true
#        extension-configs:
#          dataId:
#          group:
#          refresh: true

      discovery:
        server-addr: ${settings.nacos.addr}
        namespace: ${settings.nacos.namespace.${spring.profiles.active}}

##### nacos配置参数   ####
settings:
  nacos:
    addr: 192.168.31.37:38001
    namespace:
      dev: 190bfcff-e39e-42d7-ae87-af2690a4d409

配置应该一看就懂,没有什么难的,我在nacos中给这个微服务添加配置,看能不能获取到
在这里插入图片描述
我就简单的添加一个端口,然后我们启动服务查看端口即可
在这里插入图片描述
可以看见我们的配置已经生效。在Located property source展示的是所有能加载的配置,这一点我觉得不太好,空的配置也展示出来了,也可能是我学的还不到家–。。。

  • 动态更新配置
    我们添加一个配置
    在这里插入图片描述
    就一个简单地test.word
    然后我么在代码中测试一下
    在这里插入图片描述
    需要更新配置的类需要添加@RefreshScope注解
    然后用postman调用,第一次是返回结果是hello,当我们修改nacos中word的值之后,可以在控制台看见配置更新了
    在这里插入图片描述
    然后不需要重启服务直接调用接口即可看见修改后的信息

然后接下来肯定就是公共配置了,毕竟很多很多配置都是公共的,如果需要更改,我们只需要修改公共的配置即可

  • 添加配置,上面的配置文件中的shared-configs,顾名思义就是共享文件的配置,这个默认是在当前工作空间的默认分组(DEFAULT_GROUP)里面,
  • 如果想要自定义分组就使用extension-configs配置,上面的配置文件注释掉的内容
    将公共的配置添加到shareConfig.yaml中
    在这里插入图片描述
    然后启动服务在Located property source一栏日志即可看见我们的配置被加载了
    在这里插入图片描述
    over
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值