Apollo配置中心及Python连接
本文将会介绍如何启动Apollo,在Apollo中配置参数,以及如何使用Python连接Apollo.
Apollo介绍
在文章Python之读取配置文件和文章Python之配置文件处理中,笔者分别介绍了如何使用Python来处理ini,
yaml,
conf等配置文件。这种配置方式比较方便本地加载,但囿于项目的复杂性、安全性、稳定性等角度考虑,我们需要借助其它的配置工具来实现更高效、高可靠的参数配置,其中之一便是Apollo
。
Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Apollo的优点如下:
- 部署简单
- 灰度发布
- 版本发布管理
- 提供开放平台API
- 客户端配置信息监控
- 提供Java和.Net原生客户端
- 配置修改实时生效(热发布)
- 权限管理、发布审核、操作审计
- 统一管理不同环境、不同集群的配置
Apollo启动
我们采用Docker-Compose
方式来启动Apollo
,参考Github项目apollo-quick-start中给出的介绍,可以方便地在本地启动Apollo
。
如果使用的是 arm 架构的机器,例如 mac m1,需要下载docker-compose-arm64.yml。
1 |
|
如果是其他架构的机器,如x86,则直接启动:
1 |
|
Apollo配置
启动成功后,在浏览器中输入网址localhost:8070打开Apollo配置页面,账号apollo,密码admin,环境选择DEV,创建应用ai_service_1,app id 为ai_test,配置参数如下:
在管理秘钥中创建秘钥,点击发布按钮即可发布配置好的变量。
Python连接Apollo
Apollo
天然支持Java,
Net连接,支持度较好,对于Python,也有热心的开发者创建了支持度较好的第三方模块,这里使用pyapollo。该模块的安装方式为:
1 |
|
使用Python连接Apollo
的示例代码如下:
1 |
|
输出结果如下:
1 |
|
同时在本地的my_apollo_config目录下,也会有缓存的配置文件。
在上面的示例代码中,host, port,
key变量都正常获取,但name变量不存在Apollo
中,因为取默认值。如果在Apollo
中配置该参数,则也能正常获取。
总结
本文是笔者在实际工作中的一次总结,主要介绍了Apollo的启动、配置,以及如何使用Python来连接Apollo。
笔者已开通个人博客网址:https://percent4.github.io/ ,欢迎大家访问~
推荐阅读
欢迎关注我的公众号NLP奇幻之旅,原创技术文章第一时间推送。
欢迎关注我的知识星球“自然语言处理奇幻之旅”,笔者正在努力构建自己的技术社区。