2019 年 12 月份的时候写过一篇文章 Apollo 配置中心初探,当时刚接触 apollo,使用还不是很熟练,只是快速的部署出来了。随后在业务快速迭代的过程中,使用 apollo 的频率越来越高,了解也越来越深入。后来还转载过一篇文章微服务架构~携程Apollo配置中心架构剖析,对 Apollo 的架构解说的很详细,可以让你迅速的掌握配置中心的核心精髓。
近期,随着新系统的上线,由开发工程师提需求,需要用 Apollo 配置中心来管理配置,然后我们运维部这边迅速的部署出来了。在部署的过程中,也遇到过一些有趣的问题,算是积累了一些经验。
最开始,还是想在测试环境快速部署出来,打算用 Quick Start 的程序来启动(https://github.com/ctripcorp/apollo/wiki/Quick-Start),数据库导入之后检查8080 端口(lsof -i:8080),才发现本地的 tomcat 已经占用了 8080(结果就是 demo.sh 脚本执行报错),而且该端口还和外部系统有交互,基本不太可能更换 tomcat 的 8080 端口。此时 Apollo 和 tomcat 复用一台机器(资源有限,节约成本),如果换台机器也能避免端口冲突了。另外一种解决办法,就是换 apollo 的 8080 端口,但是 Quick Start 方式启动的服务中,端口是固定的,无法手动指定。此路不通,只能想其他办法了。
查阅官方文档后,发现用分布式部署的包启动 apolloconfig 服务,可以指定端口(https://github.com/nobodyiam/apollo-build-scripts),下载 1.7.1 版本的三个压缩包并解压。前面的准备工作,官方和前面的文章都提到过了,就是java 环境、mysql 数据库版本、数据库导入这几步。
1、如果要修改端口的话,修改配置文件
apollo-configservice/scripts/startup.sh
apollo-adminservice/scripts/startup.sh
apollo-portal/scripts/startup.sh
2、修改apollo-configservice 服务的数据库配置文件
apollo-configservice/config/application-github.properties
修改 apollo-adminservice 服务的数据库配置
apollo-adminservice/config/application-github.properties
修改 apollo-portal 服务的数据库配置
apollo-portal/config/apollo-env.properties
apollo-portal/config/application-github.properties
注意:
(1) 如果修改了 apollo-configservice 端口,记得修改 apolloconfigdb 数据库中 Eureka 的地址,否则其他服务注册不上去,apolloadminservice、apolloportalservice 可以启动,但是 Apollo 界面右上角会提示系统错误。
(2) 由于开发本地电脑资源不足,本地开发环境也需要用 apollo,所以测试环境的 apollo 跑了 DEV 环境和 FAT 环境。是通过分布式部署包启动的,准备apollo-configservice-fat 数据库(注意数据库是否区分大小写,建议不区分),修改了 apollo-configservice 的端口。
修改sql,生产 apollo-configservice-fat 数据库
cp -r apollo-configservice apollo-configservice-fat
cp -r apollo-adminservice apollo-adminservice-fat
修改了 apollo-configservice-fat 端口
vim apollo-configservice-fat/scripts/startup.sh
修改了 apollo-configservice-fat 数据库配置
apollo-configservice-fat/config/application-github.properties
修改了 apollo-adminservice-fat 端口
vim apollo-adminservice-fat/scripts/startup.sh
修改了 apollo-adminservice-fat 数据库配置
vim apollo-adminservice-fat/config/application-github.properties
(3) 注意服务启动顺序,apollo-configservice、apollo-configservice-fat、apollo-adminservice、apollo-adminservice-fat、apollo-portal。
欢迎大家关注我的微信公众号,一起学习进步!
留言分享你的经验....
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)