目录
一、背景
二、Apollo的环境的搭建(分布式多环境)
三、Java程序的应用(SpringBoot)
四、总结
最近在公司需要完成一个技术优化事项:由于SpringCloudConfig在使用上修改配置以后需要进行服务器重启的形式来进行配置变更,流程比较麻烦以及繁琐,所以需要配合运维把手头上负责的项目的配置中心SpringCloudConfig替换成Apollo作为新的注册中心。所以就想认真的学习下Apollo,做好技术储备。
首先Apollo的文档真的很全,强烈推荐大家直接走官方文档Apollo,也不用去看网上的一些博客,除非遇到搭建不成功的情况下,可以通过别人的博客看看是否有遗漏的地方进行查漏补缺。当然如果你觉得麻烦,不想看文档,可以直接看这篇博客讲我是怎么搭建环境以及使用的。
补充:这里讲的是分布式多环境的部署和运用,如果是QuickStart形式的搭建建议直接看文档,这里不做多的描述
(1)在搭建的过程中还是要基本了解下Apollo的组件,如果想要完整的了解具体组件定义还是需要你去看文档。
(1)准备两台机器,我是直接使用ubuntu虚拟机,你也可以用linux。
(2)安装Java JDK, 这是基础,这里不再赘述。
(3)安装数据库MySql,可以使用docker一键安装,这里也不再赘述。
(4)导入DB文件,两个DB文件,一个是configDB,一个portalDB,会自动帮你创建数据库,无需新建一个库再执行SQL文件
apollo-build-scripts/apolloconfigdb.sql at master · apolloconfig/apollo-build-scripts · GitHub
apollo-build-scripts/apolloportaldb.sql at master · apolloconfig/apollo-build-scripts · GitHub
(5)安装apollo-adminservice、apollo-config-service、apollo-portal-service
https://github.com/apolloconfig/apollo/releases,通过下载地址分别下载三个安装包
也可以直接我的项目里面已经压缩好的安装包apollo-all.zip(包含三个服务)
编辑config目录下面的application-github.properties
写上你的configDB地址
配置好了以后直接script启动。
2、apollo-config-service
同理,在config目录下面的application-github.properites配置数据库地址,然后启动即可。
3、apollo-portal-service,同样是数据库配置,不过多了apollo-env.properites的配置,配上FAT和DEV的配置
注意如果是多个环境,apollo-adminservice、apollo-config-service 需部署多套。像我就是在两台ubuntu上面分别部署apollo-adminservice和apollo-config-service。
apollo-portal-service因为是管理多套环境的,只需要部署一套就行了。
然后补全dev、fat环境参数,将所有服务启动。访问页面 http://ip地址:8070 即可访问apollo控制台
这里没什么好说的,上jar包
com.ctrip.framework.apollo apollo-client 1.9.2 com.ctrip.framework.apollo apollo-core 1.9.2
加上启动注解
上配置(注意环境区分)
就像使用其他配置中心一样的使用注解@Value即可获取数据
/**
* @author chenfoxin
* @Description 测试mock数据
* @Date 2022/3/19 22:38
**/
@RestController
@RequestMapping("/apolloMockController")
public class ApolloMockController {
@Value("${spring.demo.apollo:0}")
private String value;
@GetMapping("/mock")
public String mock(){
return value;
}
}
这里只讲述了最基本的Apollo分布式的玩法(两套环境),总体来说搭建环境并不是很难,作为学习的情况下,如果需要了解更详细的apollo还是建议直接看官方文档,讲解的非常的详细。
Apollo
Javademo项目Git地址spring-boot-apollo: SpringBoot应用下的apollo实战