在学习Spring Cloud时,学习了Spring Cloud Config作为配置中心来实现微服务实例的配置。但是由于Config自身的局限性,公司采用了携程的Apollo作为配置中心,于是通过官方文档和网上资料进行了学习,在这里进行记录总结下。
Spring Cloud Config 和 Apollo对比:
功能点 | Apollo | Spring Cloud Config |
---|---|---|
配置界面 | 统一界面管理不同环境\集群配置 | 无界面,通过git操作 |
配置生效时间 | 实时(1s) | 重启生效,或者Refresh,或git hook+MQ扩展 |
版本管理 | 提供发布历史,支持回滚 | 通过git操作,可以回滚 |
灰度发布 | 支持 | 不支持 |
审核\审计\授权 | 界面操作,支持修改和发布权限分离 | 通过git仓库设置,不支持权限分离 |
配置监控 | 在界面可以看到实例使用的配置清单 | 不支持 |
客户端支持 | 提供Java和.NET的原生客户端,支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,提供了Http接口,提供开放平台API | Spring Annotation |
Apollo官方提供了两种快速部署的方式,一种是通过GitHub下载,另一种通过网盘下载,这里使用网盘下载。
在安装前,Apollo对Java和MySQL的版本有要求:
Apollo服务端需要两个数据库 ApolloPortalDB和ApolloConfigDB,解压后可以得到两个sql文件,通过在msyql client导入sql文件创建数据库source /path/sql/apolloportaldb.sql
source /path/sql/apolloconfigdb.sql
在解压后可以看到demo.sh脚本文件,通过修改该文件来配置数据库的信息
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
在脚本中可以看到
config_server_url=http://localhost:8080
admin_server_url=http://localhost:8090
eureka_service_url=$config_server_url/eureka/
portal_url=http://localhost:8070
由此看出Apollo集成了Eureka注册中心,config_server的地址就是eurek的地址。确保8080 8090 8070 这三个端口没有被占用。
通过git 执行脚本./demo.sh start
启动服务
访问http://localhost:8070 通过界面使用Apollo配置中心,输入用户名apollo密码admin登录。
注意:
使用该方式不支持增加环境,只有通过分布式部署才可以新增环境
使用该方式端口号不能修改,其他电脑无法使用配置中心
使用自建项目使用配置中心,这里创建Spring Boot项目,在resources下创建META-INF目录,创建app.properties文件,配置app.id=** 和 apollo.meta=http://localhost:8080,更为具体的使用方式详见:Apollo java客户端使用指南
通过./demo.sh stop
停止服务
参考资料:
https://github.com/ctripcorp/apollo/wiki/Quick-Start
https://blog.csdn.net/zhangweiwei2020/article/details/80955754
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/sinat_36553913/article/details/82829049
内容来源于网络,如有侵权,请联系作者删除!