开发者社区> 问答> 正文

如何实现配置管理?

如何实现配置管理?

展开
收起
小天使爱美 2020-03-27 11:49:20 1331 0
1 条回答
写回答
取消 提交回答
  • 本文以 Nacos 配置管理的 Demo 应用为例,介绍如何在本地开发、调试 Spring Cloud 应用,实现 Spring Cloud Alibaba Nacos Config 实现配置管理,并通过 SAE 进行配置管理与推送。

    背景信息 在开发 Spring Cloud 应用时,您可以在本地使用 Nacos (https://nacos.io) 实现应用的配置管理。由于 SAE 集成了 Nacos 的应用配置管理 ACM 的开源版本,在应用部署到 SAE 后,您可以通过 SAE 对应用进行配置的管理和推送。

    本文以 Spring Cloud 应用开发过程为例,使用 Spring Cloud Alibaba Nacos Config 实现配置管理。您也可以下载该应用示例的 Demo nacos-config-example。

    说明 Spring Cloud Alibaba Nacos Config 对 Nacos 与 Spring Cloud 框架的进行了整合,支持 Spring Cloud 的配置注入规范。 准备工作 在开始开发前,请确保您已经完成以下工作:

    下载 Maven 并设置环境变量。 下载最新版本的 Nacos Server。 启动 Nacos Server。 解压下载的 Nacos Server 压缩包 进入nacos/bin目录,启动 Nacos Server。 Linux/Unix/Mac 系统:执行命令sh startup.sh -m standalone。 Windows 系统:双击执行startup.cmd文件。

    在本地 Nacos Server 控制台新建配置。 登录本地 Nacos Server 控制台(用户名和密码默认同为 nacos)。 在左侧导航栏中单击配置列表,在配置列表页面右上角单击新建配置图标增加图标。 在新建配置页面填入以下信息,单击并发布。 Data ID: nacos-config-example.properties Group: DEFAULT_GROUP 配置内容: test.name=nacos-config-test 使用 Nacos Config 实现配置管理 创建一个 Maven 工程,命名为 nacos-config-example。 在pom.xml文件中添加依赖。 以 Spring Boot 2.1.4.RELEASE 和 Spring Cloud Greenwich.SR1 为例。

    org.springframework.boot spring-boot-starter-parent 2.1.4.RELEASE

    org.springframework.boot spring-boot-starter-web com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.1.1.RELEASE

    org.springframework.cloud spring-cloud-dependencies Greenwich.SR1 pom import

    org.springframework.boot spring-boot-maven-plugin
    示例中使用的版本为 Spring Cloud Greenwich ,对应 Spring Cloud Alibaba 版本为 2.1.1.RELEASE。

    如果使用 Spring Cloud Finchley 版本,对应 Spring Cloud Alibaba 版本为 2.0.1.RELEASE。 如果使用 Spring Cloud Edgware 版本,对应 Spring Cloud Alibaba 版本为 1.5.1.RELEASE。 说明 Spring Cloud Edgware 版本的生命周期已结束,不推荐使用这个版本开发应用。 在src\main\java下创建 Packagecom.aliware.edas。 在 Packagecom.aliware.edas中创建nacos-config-example 的启动类 NacosConfigExampleApplication。 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class NacosConfigExampleApplication {
        public static void main(String[] args) {
            SpringApplication.run(NacosConfigExampleApplication.class, args);
        }
    }                        
    

    在 Packagecom.aliware.edas中创建一个简单的 ControllerEchoController,自动注入一个属性userName,且通过@Value注解指定从配置中取 Key 为test.name的值。 import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;

    @RestController
    @RefreshScope
    public class EchoController {
    
        @Value("${test.name}")
        private String userName;
    
        @RequestMapping(value = "/")
        public String echo() {
            return userName;
        }
    }                        
    

    在src\main\resources路径下创建配置文件bootstrap.properties,在bootstrap.properties中添加如下配置,指定 Nacos Server 的地址。 其中127.0.0.1:8848为 Nacos Server 的地址,18081为服务端口。

    如果您的 Nacos Server 部署在另外一台机器,则需要修改成对应的 IP 和端口。如果有其它需求,可以参照配置项参考在bootstrap.properties文件中增加配置。

    spring.application.name=nacos-config-example server.port=18081 spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    执行NacosConfigExampleApplication中的 main 函数,启动应用。 部署到 SAE 在本地完成应用的开发和测试后,将应用程序部署到 SAE,详细步骤请参见应用部署概述。

    说明 SAE 配置管理中心提供了正式商用版本 Nacos Server。当您将应用部署到 SAE 的时候,SAE 会通过优先级更高的方式去设置 Nacos Server 服务端地址和服务端口,以及 namespace、access-key、secret-key、context-path 信息。您无需进行任何额外的配置,原有的配置内容可以选择保留或删除。 如果您是初次在 SAE 控制台进行部署。如果使用 JAR 包部署,在创建应用时应用运行环境 须选 标准 Java 应用运行环境。SAE-JAR方式部署-应用运行环境配置 在部署应用前,请使用 SAE 的配置管理功能,创建与本地 Nacos Server 中相同的应用配置。

    登录 SAE 控制台。 在左侧导航栏中选择配置管理。 在配置管理页面选择地域和命名空间,单击页面右侧 添加按钮。 在新建配置页面中设置 Data ID、Group 和 配置内容,配置完成后单击发布。 Data ID: nacos-config-example.properties Group:DEFAULT_GROUP 配置内容: test.name=nacos-config-test 结果验证 部署完成后,可以通过查看日志确认应用是否启动成功。 执行命令curl http://<应用实例 IP>:<服务端口>,如curl http://192.168.0.34:8080 查看是否返回配置内容 nacos-config-test。 在 SAE 控制台将原有配置内容修改为 nacos-config-test2,再执行命令curl http://<应用实例 IP>:<服务端口>,如curl http://192.168.0.34:8080,查看是否返回变更后的配置内容 nacos-config-test2。 配置项参考 如果有其它需求,可以参照下表在bootstrap.properties文件中增加配置。

    配置项 key 默认值 说明 服务端地址 spring.cloud.nacos.config.server-addr 无 无 DataId 前缀 spring.cloud.nacos.config.prefix ${spring.application.name} Data ID 的前缀 Group spring.cloud.nacos.config.group DEFAULT_GROUP Data ID 后缀及内容文件格式 spring.cloud.nacos.config.file-extension properties Data ID 的后缀,同时也是配置内容的文件格式,默认是 properties,支持 yaml 和 yml。 配置内容的编码方式 spring.cloud.nacos.config.encode UTF-8 配置的编码 获取配置的超时时间 spring.cloud.nacos.config.timeout 3000 单位为 ms 配置的命名空间 spring.cloud.nacos.config.namespace 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源隔离等。 相对路径 spring.cloud.nacos.config.context-path 服务端 API 的相对路径 接入点 spring.cloud.nacos.config.endpoint UTF-8 地域的某个服务的入口域名,通过此域名可以动态地拿到服务端地址。 是否开启监听和自动刷新 spring.cloud.nacos.config.refresh.enabled true 默认为 true,不需要修改。 更多配置项,请参考开源版本的 Spring Cloud Alibaba Nacos Config 文档。

    2020-03-27 11:57:17
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
构建微服务下的性能监控 立即下载
Dubbo 如何成为连接各种异构微服务体系的服务开发框架 立即下载
微服务架构的应用性能监控 立即下载