致力微服务 SpringCloud Alibab 篇二 nacos 配置中心

Nacos除了可以作为服务注册中心,它还有服务配置中心的功能。类似于consul config,Nacos 是支持热加载的。

在篇一的基础继续使用nacos作为配置中心

引入依赖

  • 在需要统一管理配置的项目中添加对应依赖

        
            org.springframework.cloud
            spring-cloud-alibaba-nacos-config
            0.2.1.RELEASE
        
  • 项目中添加bootstrap配置文件(同样是支持properties和yml格式的),这里对应配置中心的配置必须是bootstrap,可以参考bootstrap与application配置文件的区别
#应用名称
spring.application.name=love-service-master
#服务器地址
server=127.0.0.1
#分组
group=DEV_GROUP

# Nacos 服务中心和配置中心地址
spring.cloud.nacos.discovery.server-addr=${server}:8848
spring.cloud.nacos.config.server-addr=${server}:8848

#需要加载外部配置,必须写在bootstrap中
## Nacos 配置中心获取配置文件 坐标
spring.cloud.nacos.config.group=${group}
spring.cloud.nacos.config.prefix=love-service
spring.profiles.active=master
spring.cloud.nacos.config.file-extension=properties

    这里没有配置应用端口号,类似于这种具体应用的配置,稍后都写到配置中心对应的配置文件中

  • nacos配置中心,添加编辑配置与bootstrap中对应坐标一致

    新建配置

致力微服务 SpringCloud Alibab 篇二 nacos 配置中心_第1张图片

   致力微服务 SpringCloud Alibab 篇二 nacos 配置中心_第2张图片

  • 热加载

    写一个Controller,在Controller上添加 @RefreshScope 实现配置的热加载,先到上述配置中修改配置,添加username属性

@Controller
@RefreshScope
public class ConfigController {
    @Value("${username}")
    private String username;

    @ResponseBody
    @RequestMapping("/getUsername")
    public String get() {
        return username;
    }
}

启动工程,在浏览器上访问localhost:8888/getUsername,可以返回在nacos控制台上配置的username。在nacos 网页上更改username的配置,在不重启工程的情况下,重新访问localhost:8888/getUsername,返回的事修改后的值,可见nacos作为配置中心实现了热加载功能。

模拟服务集群,测试负载均衡--一个应用多端口启用

你可能感兴趣的:(spring-cloud,spring-boot)