Apollo源码剖析环境搭建
1 源码下载
我们使用git从https://github.com/ctripcorp/apollo下载源码,下载后的源码如下:
版本切换至v1.7.1,如下操作:
2 导入数据库
在跟路径下有 scripts/sql 目录,下面有2个sql脚本,我们将该脚本导入到数据库中。
如下图
3 apollo-assembly启动服务
我们启动Apollo服务,需要同时启动configservice、adminservice,如果手动启动比较慢,Apollo帮我们封装了一个工程 apollo-assembly
,可以基于该工程同时启动 apollo-adminservice
和 apollo-configservice
项目。
修改 apollo-configservice 的核心配置文件 bootstrap.yml 添加Eureka不注册Eureka数据也不获取Eureka数据,配置如下:
完整代码如下:
我们先配置该工程,如下图:
这里的VM optins:
-Dapollo_profile=github
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
-Dspring.datasource.username=root
-Dspring.datasource.password=123456
-Dlogging.file=D:/project/xc-apollo/apollo-assembly.log
参数 Program arguments
中的两个参数分别表示启动 configservice 和 adminservice 服务。
启动完成后,我们请求Eurekahttp://localhost:8080/
PortalService启动
apollo-portal工程需要单独启动,启动的时候我们也需要配置密码和日志输出文件,如下图:
VM options配置如下:
-Dapollo_profile=github,auth
-Ddev_meta=http://localhost:8080/
-Dserver.port=8070
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
-Dspring.datasource.username=root
-Dspring.datasource.password=123456
-Dlogging.file=D:/project/xc-apollo/apollo-portal.log
启动完成后,我们接下来访问控制台 http://localhost:8070
效果如下:
4 服务测试
我们可以先创建一个项目并且app.id=100004458【必须是这个,因为配置文件中已经写死了】,如下图:
在该项目的 application.properties
中添加一个username
参数,如下图:
Apollo 提供了内置的测试服务,该服务会访问 Apollo 服务app.id=100004458
的项目,我们可以在该工程启动时配置 VM options 参数指定 Apollo 注册中心地址,如下图:
VM options参数配置如下:
-Denv=dev
-Ddev_meta=http://localhost:8080
启动程序,我们输入username回车,可以看到对应数据,如下输出结果: