目录
什么是配置?
什么是配置中心?
配置中心需要满足条件
什么是Apollo?
Apollo特性
Apollo执行流程
Apollo安装
Git地址:
用户手册:
环境准备:
使用idea 的git clone 拉取源码
修改Apollo\scripts\下的build.bat
什么是配置?
应用程序在启动和运行的时候需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如启动时需要读取服务的端口号、系统在运行过程中需要读取定时策略执行定时任务等.配置文件,环境变量,启动参数,数据库连接参数等。
什么是配置中心?
传统单体应用存在一些潜在缺陷,如随着规模的扩大,部署效率降低,团队协作效率差,系统可靠性变差,维护困难,新功能上线周期长等,所以迫切需要一种新的架构去解决这些问题,而微服务( microservices )架构正是当下一种流行的解法。但是使用微服务解决问题的同时也会出现一些问题,当把一个单体应用拆分成多个服务时,配置文件也会跟着分散了。如下图:
配置中心就是一种统一管理各种应用配置的基础服务组件。 它将配置从应用中剥离出来,统一管理,优雅的解决了配置的动态变更、持久化、运维成本等问题。
配置中心需要满足条件
- 配置项容易读取和修改
- 添加新配置简单直接
- 支持对配置的修改的检视,可以查看配置修改的历史记录
- 不同部署环境支持隔离
什么是Apollo?
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用的不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
Apollo包括服务端和客户端两部分 :
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring、Spring Boot环境也有较好的支持。
Apollo特性
统一管理不同环境、不同集群的配置 |
|
配置修改实时生效( 热发布) |
|
版本发布管理 |
|
灰度发布 |
|
权限管理、发布审核、操作审计 |
|
配置信息监控 |
|
提供开放平台API |
|
提供丰富的软件开发工具包 |
|
部署简单 |
|
Apollo执行流程
大致流程就是用户在Apollo配置中心修改配置,应用程序通过Apollo客户端从配置中心拉取配置信息。
本地文件缓存用于Apollo服务宕机后不影响应用程序获取配置。
Apollo安装
Git地址:
GitHub - apolloconfig/apollo:Apollo 是一个可靠的配置管理系统,适用于微服务配置管理场景。
https://github.com/apolloconfig/apollo.git
用户手册:
Apollo
环境准备:
java: JDK 1.8.+
maven: 3.3.9
mysql: 版本要求(5.6.5+)
创建数据库:Git拉取下的源码包的以下路径,执行sql(apolloconfigdb.sql与
apolloportaldb.sql)
验证导入是否成功
使用idea 的git clone 拉取源码
修改Apollo\scripts\下的build.bat
注:build.sh是linux的
修改内容:
rem apollo config db info
set apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
set apollo_config_db_username="root"
set apollo_config_db_password="root"
rem apollo portal db info
set apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"
set apollo_portal_db_username="root"
set apollo_portal_db_password="root"
修改好后在以下路径找到build.bat并双击执行,执行成功后再项目的apollo-configservice、apollo-adminservice、apollo-portal包下的target找到已经打好的三个jar包并copy 出来(路径按自己喜好来)
编写启动脚本
@echo off
start cmd /c"java -jar apollo-configservice-2.2.0-SNAPSHOT.jar"
start cmd /c"java -jar apollo-adminservice-2.2.0-SNAPSHOT.jar"
start cmd /c"java -jar apollo-portal-2.2.0-SNAPSHOT.jar"
spause // 防止运行完毕后直接关闭界面
双击
全部启动成功之后,打开浏览器输入:http://localhost:8070/,看到 Apollo 登录页面说明启动成功
用户名密码: apollo/admin
打开浏览器输入:http://localhost:8080 ,如果出现eureka 的管理界面,说明服务启动正常。