docker化安装apollo

一、安装Apollo服务

docker化安装
http://blog.raikay.com/post/2020/apollo/(二中apollo搭建,步骤中有修改的部分,亲测主体有效)


# 如果没有安装mysql,且想使用docker化的mysql,可执行这句
# docker run -p 23306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

新建3个数据库,其中有两个需要更名。

docker pull idoop/docker-apollo

docker run -it --net="host" --name myapollo -d
-e PORTAL_DB='jdbc:mysql://127.0.0.1:3306/ApolloPortalDB?characterEncoding=utf8'
-e PORTAL_DB_USER='root'
-e PORTAL_DB_PWD='root'
-e DEV_DB='jdbc:mysql://127.0.0.1:3306/ApolloConfigDBDev?characterEncoding=utf8'
-e DEV_DB_USER='root'
-e DEV_DB_PWD='root'
-e PRO_DB='jdbc:mysql://127.0.0.1:3306/ApolloConfigDBPro?characterEncoding=utf8'
-e PRO_DB_USER='root'
-e PRO_DB_PWD='root'
idoop/docker-apollo:latest

二、操作Apollo的web页面

10.1.2.3:8070

账号和密码

apollo

admin

1、新建部门名称
数据库中修改:ApolloPortalDB库——> ServerConfig表 ——> key=organizations的记录,修改value值。
比如:新增A部门,value的值修改为:
[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"},{"orgId":"depart01","orgName":"A部门"}]

2、创建项目
首页——> 创建项目

3、新建集群名称
选择项目——>底部,添加集群

4、新建命名空间名称(命名空间就相当于一个文件)
选择项目——>底部,添加命名空间

5、删除命名空间名称
管理员工具——>删除应用、集群、命名空间——>底部,查询命名空间——>删除命名空间
其他删除方法是无效的。


三、访问Apollo的服务

通过api访问
(一)访问非json格式的单个值
http://10.1.2.3:8083/configs/dev01/saas/depart01.n1
http://10.1.2.3:8083/configs/dev01/saas/application
http://10.1.2.3:8083/configs/dev01/saas/haha.txt

# 8083代表PRO环境。在mysql数据库中修改的。
# configs 固定写法
# dev01 项目名称,又称appID
# saas 集群名称
# depart01.n1、application都是命名空间。

通过python3调用apollo的api

python3安装apollo客户端
pip install pyapollos

代码

from pyapollos import ApolloClient

# http://10.1.2.3:8083/configs/dev01/saas/depart01.n1
# 8083代表PRO环境。在mysql数据库中修改的。
apollo_client = ApolloClient(app_id="dev01", cluster='saas', config_server_url="http://10.1.2.3:8083")

# depart01.n1是命名空间。application是命名空间。
print(apollo_client.get_value('k1', namespace='depart01.n1'))
print(apollo_client.get_value('w2', namespace='application'))
print(apollo_client.get_value('content', namespace='haha.txt'))

 参考:https://www.pythonf.cn/read/1485  

默认的application.properties是k-v格式,key填实际的值就行,namespace不带文件后缀

新建的私有namespace=test.txt不是k-v格式,namespace参数必须带文件后缀,但是ApolloClient只有这一个get函数,必须传key。

(二)访问json格式的全部值


参考:https://www.cnblogs.com/zhuoyanXiaNa/p/11195506.html

http://10.1.2.3:8083/configfiles/json/dev01/saas/depart01.n1
http://10.1.2.3:8083/configfiles/json/dev01/saas/application

configfiles/json 固定写法

原文地址:https://www.cnblogs.com/andy9468/p/14231731.html