携程Apollo分布式配置中心搭建指南

Apollo配置中心介绍

Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

Apollo支持4个维度管理Key-Value格式的配置:

1、application (应用)
2、environment (环境)
3、cluster (集群)
4、namespace (命名空间)

部署环境要求指南

这里郑重说明,虚拟机或者云服务器的内存至少在2G以上,否则后面将配置中心的几个项目启动起来,所以如果虚拟机或者内存不够,需要提前进行扩容

1、java版本:1.8+,linux下可通过如下命令查看,
携程Apollo分布式配置中心搭建指南_第1张图片
2、mysql版本,5.6.5+,可通过如下命令查看,我这里是5.6.43版本的,这是我新安装的,本来想用windows的,但是注意这里有个坑,如果你的版本低于这个的话,导入阿波罗配置中心需要的表的时候会无法导入,下面导入的时候再来说说这个问题,
携程Apollo分布式配置中心搭建指南_第2张图片
3、mysql安装成功后,将从github上面下载的两个sql文件导入到新建的数据库里面,直接通过客户端导入这两个sql文件即可,这两个配置文件分别是作为配置中心进行文件配置的相关表以及客户端访问相关的表,
在这里插入图片描述

这里的问题是,如果你的mysql版本比较低的话,就会遇到下面这个问题,意思就是在5.5版本里面,一个表里面不能同时出现两个不同类型的时间戳格式,这里需要注意一下,
携程Apollo分布式配置中心搭建指南_第3张图片

4、上传主项目工程到linux,上传完毕直接解压即可,
携程Apollo分布式配置中心搭建指南_第4张图片
5、阿波罗的整个配置中心包括三部分内容,一个是adminService,即配置服务的管理控制台服务,第二个是configServer,即注册中心,这里的注册中心采用的是eureka,主要是为了检测服务心跳,便于以后做集群部署,第三个是portal服务,就是客户端连接操作配置文件的界面服务,启动服务之前,我们需要对原始的demo.sh这个主配置文件进行相应的修改,
携程Apollo分布式配置中心搭建指南_第5张图片

进入这个配置文件,将相关的连接信息修改为当前主机的IP及端口即可,这里要修改的地方主要包括4个部分,第一个是数据库连接,第二个就是上面三个服务客户端访问时的相关IP地址,替换成本机IP即可,

# apollo config db info
apollo_config_db_url=jdbc:mysql://192.168.111.132:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=root

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://192.168.111.132:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=root

# =============== Please do not modify the following content =============== #

if [ "$(uname)" == "Darwin" ]; then
    windows="0"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
    windows="0"
elif [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
    windows="1"
else
    windows="0"
fi

# meta server url
#实际部署配置环境这个项目所在的服务器IP
config_server_url=http://192.168.111.132:8080

admin_server_url=http://192.168.111.132:8090

eureka_service_url=$config_server_url/eureka/

portal_url=http://192.168.111.132:8070

上面都配置完毕后,为了维护方便,建议在防火墙文件中添加上相关端口的映射,也可以不用配置,直接关闭防火墙即可,

vi /etc/sysconfig/iptables
携程Apollo分布式配置中心搭建指南_第6张图片

修改完毕配置文件后基本上就搞定了,下面进入项目主目录,启动,只需要 ./demo.sh start 即可启动,看到下面这几端就说明三个服务启动成功了,
携程Apollo分布式配置中心搭建指南_第7张图片

这里主要想说说启动过程中遇到的几个很坑爹的问题,
p1:就是上面的最后一行,启动第一个admin服务的时候就一直报超时,
在这里插入图片描述
网上可以参考的解决方法大概两种,一个是再次执行启动命令,一个是修改配置,至于怎么修改没有明确答案,我是翻看了启动日志,这个里面启动时候如果失败会提示你到对应项目里面看日志信息,虽然不全面,但也是有点儿帮助,如果是admin报错,可以进入到service包里面看这个日志,
携程Apollo分布式配置中心搭建指南_第8张图片

下面是我遇到的第一个问题,这个问题的第一反应是,我明明已经在mysql里面对所有的客户端连接配置过授权了,怎么还会有这个问题了?后来想想可能是本机的IP和当前用户zcyes做了映射绑定,两个都是在root用户下连接,所以无法成功连接数据库,只需要登录到mysql服务端,通过授权命令对当前zcyes配置一下权限即可,将@后面的%替换成zcyes即当前主机的root用户名即可,

1、mysql -u root -p (root)用户名

2、mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;

3、mysql>flush privileges;
携程Apollo分布式配置中心搭建指南_第9张图片

同时为了避免修改root用户的登录密码,这里我直接将zcyes这个用户的连接数据库的密码修改了一下,即zcyes这个用户可以以root/zeyes连接mysql,这样需要重新修改一下demo.sh的配置文件,如下,
携程Apollo分布式配置中心搭建指南_第10张图片
基本上在这个地方耗费了比较长的时间,然后看到上面的几个started的提示之后,我们就可以在浏览器进行访问了,这里为了演示方便我直接将防火墙关掉了,

service iptables stop

一、首先我们连接一下8080,这个是eureka的配置中心,所有的服务都会在这里注册,
这个界面是不是很熟悉,没错,就是springcloud里面的eureka注册中心,
携程Apollo分布式配置中心搭建指南_第11张图片

二、阿波罗应用web端,输入,http://192.168.111.132:8070,
首次登陆需要用户名和密码,用户名是 apollo ,密码 admin,
携程Apollo分布式配置中心搭建指南_第12张图片

登陆进去之后,就可以在界面上进行相关的配置了,在阿波罗的应用端,配置文件主要是通过key-value的形式进行配置的,配置完毕,可以进行编辑和修改,很方便,
携程Apollo分布式配置中心搭建指南_第13张图片

登陆进去之后,点击创建项目,即可开始新增你的项目对应的配置文件了,这里我创建了一个测试文件,大家点进去之后可以尝试下,具体怎么使用的话,非常简单,只需要在界面上进行相应的配置即可,效果如下图,在这个界面里面进行配置文件的管理非常方便,不仅可以新增、删除、修改,还能查看历史记录,对于运维管理和开放人员来说,可以很方便的定位配置文件的信息,
携程Apollo分布式配置中心搭建指南_第14张图片

其实阿波罗配置中心的强大之处,在于整合服务端程序的使用上面,可以无缝对接程序,修改完毕,不需要项目开发人员或者应用端做任何修改就可以读到最新的配置文件,这也是其优势所在,我会在后面的篇章中说说阿波罗配置中心在整合springboot项目中的具体使用!

本篇到此结束,感谢观看!

你可能感兴趣的:(阿波罗)