Apollo学习(一):在本地Windows系统下搭建Apollo配置中心

说明

在学习Spring Cloud时,学习了Spring Cloud Config作为配置中心来实现微服务实例的配置。但是由于Config自身的局限性,公司采用了携程的Apollo作为配置中心,于是通过官方文档和网上资料进行了学习,在这里进行记录总结下。

正文

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的版本有要求:

  • Java 必须是1.8+
  • MySQL 必须是5.6.5+ 要在本地安装多版本的MySQL服务,请看之前的博文《win10下安装不同版本的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 启动服务
Apollo学习(一):在本地Windows系统下搭建Apollo配置中心_第1张图片
访问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

你可能感兴趣的:(Apollo)