目录

一、背景

二、Apollo简介

三、安装包准备

四、安装Apollo

4.1环境准备

4.2 软件准备

4.2.1 JDK安装

4.2.2 MySQL安装

4.3 部署开发环境

4.4 启动脚本

 五、环境测试

 六、Springboot集成Apollo配置中心

6.1 客户端(具体应用的项目)的修改

6.1.1 pom文件

6.1.2 启动类增加Apollo客户端

6.1.3 在application.yml增加配置

6.2 在Apollo配置中心增加项目

 七、参考文献


一、背景

为了保证自己的开发环境和测试环境的一致性,决定自行搭建一套Apollo开发环境玩玩,中间有些许坎坷,但是还好,一下午就搞定了,总体来说,不是很难。参考文献很多,总体来说按照他们的步骤一步一步来,问题不大。特记录如下:

二、Apollo简介

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

三、安装包准备

  1. 自行在官网下载:Index of /dist/activemq/activemq-apollo/1.7.1

          或者在我的资源下载(审核通过):

Apollo(阿波罗)开源分布式配置中心(含教程).zip-Java文档类资源-CSDN下载

        我的资源下载得到3个文件夹、2个SQL和一个安装说明

        apollo-configservice

        apollo-adminservice

        apollo-portal

        apollo-portal.sql

        apollo-config.sql

         readme.md

注意:本次部署使用的是1.5.1版本,如果觉得旧,可以下载安装1.7.1或者更高的版本

四、安装Apollo

4.1环境准备

本次部署测试环境

应用服务器

环境

服务器

服务

端口

  测试

127.0.0.1

apollo-portal

30070

127.0.0.1

apollo-configservice

30080

127.0.0.1

apollo-adminservice

30090

数据库服务

环境

服务器

服务

数据库

端口

测试

127.0.0.1

apollo-portal

ApolloPortalDB

3306

apollo-configservice

ApolloConfigDBPro

3306

注意:1、127.0.0.1修改为自己的具体IP地址;2、可以根据情况进行分布式部署。

4.2 软件准备

4.2.1 JDK安装

官方文档显示jdk至少要1.8的

查看是否安装jdk    java -version

未安装jdk的需要重新安装

安装教程:https://blog.csdn.net/m0_37824308/article/details/121628390

4.2.2 MySQL安装

使用mysql -version查看是否安装mysql

未安装请自行安装

4.3 部署开发环境

在127.0.0.1 的/home/work下新建目录apollo

cd /home/work

mkdir apollo && cd apollo

将apollo-configservice、apollo-adminservice和apollo-portal文件夹拖到apollo目录下

修改配置文件(也可以修改完再上传,免得麻烦)

修改configservice的数据库:

vi apollo-configservice-1.5.1/config/application-github.properties

# DataSource  修改为自己数据库的IP:端口号

spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = abc123456

修改adminservice的数据库:

vi apollo-adminservice-1.5.1/config/application-github.properties

# DataSource  修改为自己数据库的IP:端口号

spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = abc123456

修改portal的数据库:

# DataSource  修改为自己数据库的IP:端口号

spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloportaldb?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = abc123456

导入apollo-config.sql和apollo-portal.sql脚本到数据库127.0.0.1

注意:需要修改apolloconfig的ServerConfig表的eureka.service.url值为自己部署服务的ip端口,如果是集群模式,写多个eureka的地址。因为Apllo自带eureka,所以可以选择不使用自己的eureka。

还需要修改apollo-portal的配置服务

vi apollo-portal-1.5.1/config/apollo-env.properties,只留下dev的注释掉其他几个环境的

local.meta=http://localhost:30080

dev.meta=http://localhost:30080

#fat.meta=http://fill-in-fat-meta-server:8080

#uat.meta=http://fill-in-uat-meta-server:8080

lpt.meta=${lpt_meta}

#pro.meta=http://fill-in-pro-meta-server:8080

4.4 启动脚本

注意:不建议使用安装包自带的starup.sh启动,脚本有问题(能力有限,没有细看)

启动顺序configservice->adminservice->portal
nohup java -Dserver.port=30080 -Deureka.instance.ip-address=127.0.0.1 -Deureka.instance.homePageUrl=http://127.0.0.1:30080 -jar apollo-configservice-1.5.1.jar  &

nohup java -Dserver.port=30090 -Deureka.instance.ip-address=127.0.0.1 -Deureka.instance.homePageUrl=http://127.0.0.1:30090 -jar apollo-adminservice-1.5.1.jar &

nohup java -Dserver.port=30070 -jar apollo-portal-1.5.1.jar &

带参数启动(推荐):
cd /mydata/apollo-1.5.1/apollo-configservice-1.5.1/
nohup java -Xmx256m -Xms256m -Xmn128m -Dserver.port=30080 -Deureka.instance.ip-address=127.0.0.1  -jar apollo-configservice-1.5.1.jar &

cd /mydata/apollo-1.5.1/apollo-adminservice-1.5.1/
nohup java -Xmx256m -Xms256m -Xmn128m -Dserver.port=30090 -Deureka.instance.ip-address=127.0.0.1 -jar apollo-adminservice-1.5.1.jar &

cd /mydata/apollo-1.5.1/apollo-portal-1.5.1/
nohup java -Xmx512m -Xms512m -Xmn256m -Dserver.port=30070 -jar apollo-portal-1.5.1.jar &

每个命令输入后等2min再启动下一个服务,因为有依赖关系。

当然加jvm参数启动的命令参考如下(从startup.sh copy来的),不建议加一大堆这样参数,毕竟自己使用
nohup java -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Dserver.port=30080 -Dlogging.file=/opt/logs/100003171/apollo-configservice.log -XX:HeapDumpPath=/opt/logs/100003171/HeapDumpOnOutOfMemoryError/ -XX:+UseParNewGC -Xloggc:/opt/logs/100003171/gc.log -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:+CMSClassUnloadingEnabled  -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=5M -Deureka.instance.ip-address=127.0.0.1 -Deureka.instance.homePageUrl=http://127.0.0.1:30080 -jar apollo-configservice-1.5.1.jar &

nohup java -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Dserver.port=30090 -Dlogging.file=/opt/logs/100003172/apollo-configservice.log -XX:HeapDumpPath=/opt/logs/100003172/HeapDumpOnOutOfMemoryError/ -XX:+UseParNewGC -Xloggc:/opt/logs/100003172/gc.log -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:+CMSClassUnloadingEnabled  -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=5M -Deureka.instance.ip-address=127.0.0.1 -Deureka.instance.homePageUrl=http://127.0.0.1:30090 -jar apollo-adminservice-1.5.1.jar &

nohup java -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+DisableExplicitGC -XX:+ScavengeBeforeFullGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Dserver.port=30070 -Dlogging.file=/opt/logs/100003173/apollo-configservice.log -XX:HeapDumpPath=/opt/logs/100003173/HeapDumpOnOutOfMemoryError/ -XX:+UseParNewGC -Xloggc:/opt/logs/100003173/gc.log -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:+CMSClassUnloadingEnabled  -XX:+PrintGCDateStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=5M -jar apollo-portal-1.5.1.jar &

 五、环境测试

eureka注册服务查看:http://{自己的IP}:30080/

Apollo后台查看

http://{自己的IP地址}:30070/   账号/密码  apollo/admin

 

 六、Springboot集成Apollo配置中心

6.1 客户端(具体应用的项目)的修改

6.1.1 pom文件

<!--apollo-->
    <dependency>
      <groupId>com.ctrip.framework.apollo</groupId>
      <artifactId>apollo-client</artifactId>
      <version>1.6.0</version>
    </dependency>

6.1.2 启动类增加Apollo客户端

//在springboot启动类上方加入@EnableApolloConfig注解
@EnableApolloConfig
@SpringBootApplication
public class GoogleApplication {

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

6.1.3 在application.yml增加配置

app:
  id: spring-demo
apollo:
# 修改为自己的Apollo地址的IP
  meta: http://127.0.0.1:30080/
  bootstrap:
    enabled: true
    namespace: application
    eagerLoad:
      enabled: true

6.2 在Apollo配置中心增加项目

点击创建项目,输入项目信息

部门:选择应用所在的部门

应用AppId:用来标识应用身份的唯一id,格式为string,需要和应用中配置的app.id对应
应用名称:应用名,仅用于界面展示
应用负责人:选择的人默认会成为该项目的管理员,具备项目权限管理、集群创建、Namespace创建等权限

具体操作截图如下:

 

 注意:配置信息不发布,不生效!

 七、参考文献

Apollo配置中心搭建和使用教程

https://www.cnblogs.com/zhangyjblogs/p/14163702.html

Logo

为开发者提供自动驾驶技术分享交流、实践成长、工具资源等,帮助开发者快速掌握自动驾驶技术。

更多推荐