• spring boot启动的yml放在配置中心的流程管理


    https://www.freesion.com/article/3254671660/

    淘东电商项目(10) -APOLLO分布式配置中心管理APPLICATION.YML

    标签: # 淘东电商项目

     
     

    引言

    在上一节《淘东电商项目(09) -Maven私服的上传与下载详解》,主要讲解了如何上传jar包到Maven私服以及如何从Maven私服下载jar包。

    代码已提交至Github(版本号:89dc5fb93f251f2c1c2d6f8b7c4362c721da685a),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

     

    本文继续讲解分布式基础设施环境的搭建,主要讲解Apollo分布式配置中心,以及如何把微服务的配置文件application.yml全部托管到Apollo。

    本文目录结构:
    l____引言
    l____ 1. Apollo搭建与配置
    l________ 1.1 Apollo搭建配置
    l________ 1.2 Apollo启动
    l____ 2. Apollo管理application.yml
    l________ 2.1 Apollo创建项目
    l________ 2.2 application.yml托管到Apollo
    l________ 2.3 项目集成Apollo
    l____ 3. 其它
    l____总结

    1. APOLLO环境搭建与配置

    1.1 APOLLO搭建配置

    《分布式系列课程》里,我曾写过关于Apollo环境搭建的教程,大家可以参考《分布式配置中心Apollo安装与详解》

    因为我是直接把文章中的Apollo的系统完整克隆出来的,所以要修改里面的服务器地址(旧的ip是192.168.162.131,新的地址是192.168.162.135),修改的地方有:

    • ApolloConfigDB数据库里面的ServerConfig表中的eureka.service.url字段在这里插入图片描述
    • 编辑Apollo解压目录下demo.sh文件,内容如下:在这里插入图片描述

    1.2 APOLLO启动

    1.启动MySQL数据库(版本5.7以上)

    2.启动Apollo配置中心,启动脚本在安装目录下的demo.sh文件:

    ./demo.sh start
    
    • 1

    启动成功如下图:
    在这里插入图片描述
    3.登录账号:apollo,密码:admin
    在这里插入图片描述
    4.登录成功
    在这里插入图片描述

    2. APOLLO管理APPLICATION.YML

    2.1 APOLLO创建项目

    step1.登录Apollo,创建项目(这里的项目其实就是每个部门管理的微服务),以微信微服务为例子:
    在这里插入图片描述
    step2.输入部门的id、微服务名称、负责人等信息
    在这里插入图片描述
    step3.
    在这里插入图片描述

    2.2 APPLICATION.YML托管到APOLLO

    step1.首先转换微信服务项目(taodong-shop-service-weixin)的applicatoin.yml为apollo识别的格式(properties),转换网站:http://www.toyaml.com/index.html
    在这里插入图片描述
    step2.打开Apollo文本模式:
    在这里插入图片描述
    step3.复制转换后的内容到Apollo中的app-service-weixin项目,复制内容如下(为了方便测试,我把Eureka注册中心改为Apollo的注册中心地址了eureka.client.service-url.defaultZone=http://192.168.162.135:8080/eureka):

    server.port=8200
    spring.application.name=taodong-shop-service-weixin
    eureka.client.service-url.defaultZone=http://localhost:8100/eureka
    swagger.base-package=com.ylw.taodong
    swagger.title=淘东电商项目-微信服务接口
    swagger.description=该项目“基于SpringCloud2.x构建微服务电商项目。
    swagger.version=1.1
    swagger.terms-of-service-url=www.xxx.com
    swagger.contact.name=杨林伟
    swagger.contact.email=xxxxxx@qq.com
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    step4.点击勾保存,可以看到Table视图下,配置文件都自动生成了。
    在这里插入图片描述
    step5. 点击发布,可以看到下面的状态都变为已发布了:
    在这里插入图片描述

    2.3 项目集成APOLLO

    step1.删除微信微服务的application.yml
    在这里插入图片描述
    step2.新增maven依赖(增加到服务模块的pom.xml文件taodong-shop-service):

    <dependency>
    	<groupId>com.ctrip.framework.apollo</groupId>
    	<artifactId>apollo-client</artifactId>
    	<version>1.0.0</version>
    </dependency>
    <dependency>
    	<groupId>com.ctrip.framework.apollo</groupId>
    	<artifactId>apollo-core</artifactId>
    	<version>1.0.0</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    step3.在resources文件夹目录下创建 application.properties文件,并填写apollo相关的配置信息:

    app.id=app-service-weixin
    apollo.meta=http://192.168.162.135:8080
    
    • 1
    • 2

    step4.项目启动开启阿波罗配置文件@EnableApolloConfig:

    @SpringBootApplication
    @EnableEurekaClient
    @EnableSwagger2Doc
    @EnableApolloConfig
    public class AppWeiXin {
    
        public static void main(String[] args) {
            SpringApplication.run(AppWeiXin.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    step5.启动项目,发现没有报错,控制台的内容与配置的信息apollo配置中心的内容都一致:
    在这里插入图片描述

    3. 其它

    1.为什么要使用分布式配置中心?
    答:统一管理微服务配置文件,可以实现动态化刷新配置文件。


    2.为什么我们要使用阿波罗不使用SpringCloudConfig?
    答:阿波罗配置文件存放在数据库中,SpringCloudConfig存放在Git里面。


    3.如果关闭了Apollo配置中心,还能读取到内容吗?
    答:还是可以读取到的,内容会缓存到项目本地项目文/classes/config-cache/app-service-weixin+default+application.properties


    4.如果Apollo配置了服务器访问端口,不重启,能生效吗?
    答:不可以,因为只会Apollo发布了配置信息之后,微服务会监听到配置信息的改变,刷新到JVM。但是项目在启动的时候就从配置文件获取到了端口,而非JVM,所以即使变化了,也不能在不重启的情况下直接改变端口号。

    总结

    在这里插入图片描述

  • 相关阅读:
    学习ObjectC,GUNstep安装在windows上
    Why std::binary_search of std::list works, sorta ...(转载)
    android开发_Button控件
    Android开发模拟器的使用02
    Android开发环境搭建01
    android开发TextView控件学习
    Java 利用poi把数据库中数据导入Excel
    Cannot create PoolableConnectionFactory (Communications link failure)Connection refused: connect
    Android开发第一个程序Helloworld
    java的poi技术读取和导入Excel
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/16378375.html
Copyright © 2020-2023  润新知