Apollo(阿波罗)作为携程开源的一款分布式配置管理中心,以其成熟稳定、功能丰富而备受青睐
本文将详细介绍如何在Linux环境下部署Apollo,帮助您构建一个高效、可靠的配置管理中心
一、Apollo概述 Apollo支持从应用(Application)、环境(Environment)、集群(Cluster)和命名空间(Namespace)四个维度管理Key-Value格式的配置
其核心功能包括: - 统一管理不同环境、不同集群的配置:通过统一的界面管理不同环境(如开发、测试、生产)和不同集群的配置,极大地简化了配置管理过程
- 配置修改实时生效(热发布):配置修改后,能够实时通知到应用程序,无需重启服务
- 版本发布管理,支持灰度发布:支持版本管理,能够方便地进行灰度发布,确保配置的平滑过渡
- 权限管理、发布审核、操作审计:完善的权限管理机制,确保配置的安全性和可追溯性
- 客户端配置信息监控:提供客户端配置信息的监控功能,方便及时发现和处理配置问题
Apollo的这些特性使其成为微服务架构中不可或缺的配置管理中心
二、准备工作 在部署Apollo之前,需要做好以下准备工作: 1.系统环境:本文基于CentOS 7.8进行部署,要求Java环境为1.8
2.服务器IP规划: - Meta Server/Config Service:192.168.30.129 - Admin Service:192.168.30.130 - Portal Server/MySQL:192.168.30.131 3.关闭防火墙和SELinux: bash systemctl stop firewalld && systemctl disable firewalld sed -i s/=enforcing/=disabled/g /etc/selinux/config && setenforce 0 4.安装Java环境: bash mkdir /software && cd /software tar xf jdk-8u231-linux-x64.tar.gz && mv jdk1.8.0_231/ /usr/local/jdk vim /etc/profile 添加以下内容 JAVA_HOME=/usr/local/jdk PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib exportJAVA_HOME PATH CLASSPATH source!$ java -version ln -s /usr/local/jdk/bin/java /usr/local/bin/java 三、部署数据库 Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB
这两个数据库可以通过提供的SQL脚本进行初始化
1.安装MySQL: bash cd /software vimmysql_install.sh !/bin/bash 用于安装mysql MYSQL_VER=mysql-5.7.31 PASSWORD=123456789 【! -d /software/】 && mkdir /software install_package() { cd /software yum install -y curl libaio-devel &>/dev/null } install_mysql() { # 创建mysql用户 id mysql &> /dev/null 【 $? -ne 0 】 && useradd -r -s /sbin/nologin mysql # 下载mysql if【 ! -f $MYSQL_VER.tar.gz】 &&【 ! -f $MYSQL_VER-.tar.gz 】; then curl -o $MYSQL_VER.tar.gz https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/$MYSQL_VER-linux-glibc2.12-x86_64.tar.gz fi # 解压 if【 -f $MYSQL_VER.tar.gz 】; then tar xf $MYSQL_VER.tar.gz 【! -d /home/mysql/】 && mv $MYSQL_VER-/ /home/mysql fi # 创建mysql数据存放及安装目录 【! -d /home/mysql/data 】 && mkdir /home/mysql/data 【! -d /home/mysql/tmp/】