携程apollo配置中心使用:https://blog.csdn.net/itwxming/article/details/104928753
服务jar包及初始化数据库脚本下载:(包括单机快速部署版本、加密版本、非加密版本)
链接:https://pan.baidu.com/s/1_P3Ux-2tVWWWL53S5G1HsA
提取码:lnf2
云盘的Apollo是在原官方1.3版本基础上做过二次开发,请务必通过云盘链接下载相应的zip包。
Apollo统一使用JDK1.8及以上版本。
以上包对原apollo的端口进行了统一更改:
相应服务 |
原端口 |
平台调整后端口 |
备注 |
---|---|---|---|
apollo-configservice | 8080 | 9001 | 微服务配置的连接Apollo的地址 |
apollo-portal | 8070 | 9003 | Apollo的可视化配置页面 |
apollo-adminsservice | 8090 | 9002 | Apollo自己的注册中心 |
Mysql数据库注意:Mysql的大小写敏感配置。
在Mysql数据库中新增两个数据库:apolloconfigdb和apolloportaldb,字符集及排序规则如下:
将云盘下对应的apolloconfigdb.sql和apolloportaldb.sql中的数据库脚本分别在apolloconfigdb和apolloportaldb中执行。
Apollo快速部署,只需执行一次启动,即可将apollo对应的admin-service、config-service、portal三个服务器全部启动,多用于POC或者开发环境。
Apollo快速部署方式,默认支持Apollo本身属性加密。
上传快速部署版本(apollo-single.zip)到/home/appuser/apollo目录下并解压:
修改启动脚本apollo.sh(主要为apollo config db info和apollo portal db info两个数据库的链接信息),脚本后面内容是官方原版不作修改。
# apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/apolloconfigdb?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=root
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/apolloportaldb?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=root
对启动脚本进行赋权
/home/appuser/apollo就在该原当前目录下执行下面即可:
chmod 777 apollo.sh
启动
./apollo.sh start
启动信息如下:有时候最后报错启动超时失败,但看日志没有报错,访问使用正常,实际已启动成功。
启动完成后,即可访问:http://servierIP:9001,http://servierIP:9002,http://servierIP:9003查看对应的页面
修改apolloconfigdb数据库的serverconfig表的Key为eureka.service.url的地址,此地址为apollo的9001端口地址,如:
若服务器开启了防火墙,需将端口放开:
firewall-cmd --zone=public --add-port=9001/tcp --permanent #configsrvice端口
firewall-cmd --zone=public --add-port=9002/tcp --permanent #adminservice端口
firewall-cmd --zone=public --add-port=9003/tcp --permanent #portal端口
firewall-cmd --reload #重载防火墙
Apollo提供支持加密版本和非加密版本的分体部署包,主要区别在于apollo加载的配置信息,如数据库密码等,是否支持加密。
加密版本在启动时,可能会启动相对于非加密版本略慢,使用时无其他区别。
apollo-xxxxx-encryp为加密版本;apollo-xxxxx-github为非加密版本,部署方式相同,下面部署以加密版本为例(统称分体版本,下同)
上传分体版本到/home/appuser/apollo目录下
新增对应的文件夹并解压
mkdir apollo-configservice-1.3.0
mkdir apollo-adminservice-1.3.0
mkdir apollo-portal-1.3.0
unzip apollo-adminservice-1.3.0-encryp.zip -d apollo-adminservice-1.3.0
unzip apollo-configservice-1.3.0-encryp.zip -d apollo-configservice-1.3.0
unzip apollo-portal-1.3.0-encryp.zip -d apollo-portal-1.3.0
非加密版本的:
unzip apollo-adminservice-1.3.0-github.zip -d apollo-adminservice-1.3.0
unzip apollo-configservice-1.3.0-github.zip -d apollo-configservice-1.3.0
unzip apollo-portal-1.3.0-github.zip -d apollo-portal-1.3.0
配置日志文件路径等信息
cd /home/appuser/apollo/apollo-configservice-1.3.0
vi apollo-configservice.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=$HOME/apollo/logs/100003171/
注意:务必保证PID_FOLDER路径存在,否则会使用默认路径/tmp。非root用户启动时可能会因无权限访问而启动报错
配置数据库连接
cd /home/appuser/apollo/apollo-configservice-1.3.0/config
vi application-github.properties
修改数据库连接信息
# DataSource
spring.datasource.url=jdbc:mysql://172.16.80.1:3306/apolloconfigdb?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
启动
cd /home/appuser/apollo/apollo-configservice-1.3.0/scripts
./startup.sh
修改数据库
apolloconfigdb数据库的serverconfig表中,key为eureka.service.url数据的value值改为config-service的地址,如http://172.16.80.39:9001/eureka/修改
验证
访问http://ServerIP:9001
配置日志文件路径等信息
cd /home/appuser/apollo/apollo-adminservice-1.3.0
vi apollo-adminservice.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=$HOME/apollo/logs/100003172/
注意:务必保证PID_FOLDER路径存在,否则会使用默认路径/tmp。非root用户启动时可能会因无权限访问而启动报错
配置数据库连接
cd /home/appuser/apollo/apollo-adminservice-1.3.0/config
vi application-github.properties
修改数据库连接信息
# DataSource
spring.datasource.url=jdbc:mysql://172.16.80.1:3306/apolloconfigdb?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
启动
cd /home/appuser/apollo/apollo-adminservice-1.3.0/scripts
./startup.sh
验证
访问http://ServerIP:9002
配置日志文件路径等信息
cd /home/appuser/apollo/apollo-portal-1.3.0
vi apollo-portal.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=$HOME/apollo/logs/100003173/
注意:务必保证PID_FOLDER路径存在,否则会使用默认路径/tmp。非root用户启动时可能会因无权限访问而启动报错
配置数据库连接
cd /home/appuser/apollo/apollo-portal-1.3.0/config
vi application-github.properties
修改数据库连接信息
# DataSource
spring.datasource.url=jdbc:mysql://172.16.80.1:3306/apolloportaldb?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
修改apollo多环境配置信息
cd /home/appuser/apollo/apollo-portal-1.3.0/config
vi apollo-env.properties
修改dev.meta的地址为上文启动的apollo-config-service的地址
local.meta=http://localhost:9001
dev.meta=http://172.16.80.39:9001/
fat.meta=${fat_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}
启动
cd /home/appuser/apollo/apollo-portal-1.3.0/scripts
./startup.sh
验证
访问http://ServerIP:9003。账号密码:apollo、admin。
若服务器开启了防火墙,需将端口放开:
firewall-cmd --zone=public --add-port=9001/tcp --permanent #configsrvice端口
firewall-cmd --zone=public --add-port=9002/tcp --permanent #adminservice端口
firewall-cmd --zone=public --add-port=9003/tcp --permanent #portal端口
firewall-cmd --reload #重载防火墙
Apollo属性加密,只是对apollo依赖的一些配置信息加密解密,如apolloconfigdb或apolloportaldb的密码。
使用工具类,对明文加密,得到加密后的值。
public static void main(String[] args) {
DesDecryptPropertyService service = new DesDecryptPropertyService();
String doEncrypt = service. doEncrypt("root"); //每次加密出的密码都是不同的,但不影响解密
System.out.println(doEncrypt);
String doDecrypt = service. doDecrypt(doEncrypt);
System.out.println(doDecrypt);
}
属性加密配置,在密文前加特殊标识“DECRYPT@”
spring.datasource.password=DECRYPT@kQ6Z1+/d2TQ=
5.1和5.2是开头云盘中修改过的。
对apollo-portal的AuthConfiguration类进行修改
为避免非root用户不能写入到/tmp目录下,分别在apollo-adminservice、apollo-configservice、apollo-portal工程中,添加如下属性至logback.xml(src/main/resources/logback.xml)
demo:
注:apollo-portal需额外添加依赖,以支持日志中使用springProperty标签
org.springframework.cloud
spring-cloud-starter
即不同环境的配置信息,均可通过一个apollo-portal页面进行管理:
官方地址:https://github.com/ctripcorp/apollo/wiki/分布式部署指南