首页 > 系统相关 >在Linux部署Apollo配置中心

在Linux部署Apollo配置中心

时间:2023-04-05 16:33:31浏览次数:45  
标签:opt Apollo Service 部署 dev Linux apollo soft

前言

这篇是参考官网文档总结的Apollo分布式部署方式,包含具体步骤、资源和相关脚本,也在必要的地方给出了资料来源。

通过Apollo - 中文文档 - 部署架构可以了解到单机、集群和高可用部署架构的最佳实践方式。

安装步骤

本篇实践是在Linux系统,使用Apollo 1.9.1版本为例,要求环境包含JDK 1.8+和MySQ 5.6.5+。

文内脚本执会从GitHub - Apollo releases下载三个模块(Admin Service、Config Service和Portal Service)的包到~/soft/apollo目录下,解压后放在/opt/soft目录下,配置、启停都在解压目录完成,相当于工作目录。

可以先通过Apollo各模块概要重点了解下三个模块的作用。

Config Service:端口是8080,里面包含Meta Server,Eureka,Config Service,其中Config Service又使用了ConfigDB

Admin Service:端口是8090,使用了ConfigDB

Portal Service:端口是8070,使用了PortalDB。

部署顺序最好是:configservice → adminservice → portal。下图是模块间的依赖关系:

image-20211112171243559

创建数据库

执行Github - apolloconfigdb.sql来创建配置中心服务(Config Service)和配置管理服务(Admin Service)共用的的数据库ApolloConfigDB,并创建表以及数据。

执行Github - apolloportaldb.sql来创建管理界面服务(Portal Service)需要的数据库ApolloPortalDB,并创建表以及数据。

部署Config Service

  • 下载、解压
echo "下载configservice" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-configservice-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-configservice-1.9.1-github.zip -d /opt/soft/apollo/configservice
  • 修改数据库地址为ApolloConfigDB
vim /opt/soft/apollo/configservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • 启动、停止
# 启动
/opt/soft/apollo/configservice/scripts/startup.sh

# 停止
/opt/soft/apollo/configservice/scripts/shutdown.sh

部署Admin Service

  • 下载、解压
echo "下载adminservice" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-adminservice-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-adminservice-1.9.1-github.zip -d /opt/soft/apollo/adminservice
  • 修改数据库地址为ApolloConfigDB
vim /opt/soft/apollo/adminservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • 启动、停止
# 启动
/opt/soft/apollo/adminservice/scripts/startup.sh

# 停止
/opt/soft/apollo/adminservice/scripts/shutdown.sh

部署Portal Service

  • 下载、解压
echo "下载portal" > /dev/null
wget -P ~/soft/apollo https://github.com/apolloconfig/apollo/releases/download/v1.9.1/apollo-portal-1.9.1-github.zip

echo "创建解压目录" > /dev/null
mkdir -p  /opt/soft/apollo

echo "解压到/opt/soft目录下" > /dev/null
unzip ~/soft/apollo/apollo-portal-1.9.1-github.zip -d /opt/soft/apollo/portal
  • 修改数据库地址为ApolloPortalDB
vim /opt/soft/apollo/portal/config/application-github.properties
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 666666
  • 编辑环境配置,指定某个环境地址
vim /opt/soft/apollo/portal/config/apollo-env.properties

将dev环境地址指向指定Config Service地址。

dev.meta=http://fill-in-dev-meta-server:8080
  • 启动、停止
# 启动
/opt/soft/apollo/portal/scripts/startup.sh

# 停止
/opt/soft/apollo/portal/scripts/shutdown.sh

访问测试

通过HTTP请求http://<Portal Service IP>:8070来访问管理界面,默认用户名密码分别为apolloadmin。参考Apollo 使用指南可以了解到具体使用方式。

image-20211112172344444

多环境方案

参考服务端配置说明。配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置,无特殊说明则修改完一分钟实时生效,但是修改环境得重启Portal Service。

image-20211207162532401

每个环境需要按上面的步骤各自搭建一套独立的Config Service和Admin Service,并使用独立的ConfigDB。最后再配置下面两个关键参数。

  • 可支持的环境列表(apollo.portal.envs)

    默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:

DEV,FAT,UAT,PRO
  • 各环境Meta Service列表(apollo.portal.meta.servers)

    Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config service的地址。如:

{
    "DEV":"http://1.1.1.1:8080",
    "FAT":"http://apollo.fat.xxx.com",
    "UAT":"http://apollo.uat.xxx.com",
    "PRO":"http://apollo.xxx.com"
}

高可用方案

搭建多套加独立的Config Service和Admin Service使用同一个ConfigDB。

在填写环境Meta Service地址的时候填多个用逗号分隔就行(如:http://1.1.1.1:8080,http://2.2.2.2:8080),但推荐通过SLB(Service Load Balancer)做动态负载均衡。

如何修改端口号和日志目录?

在各模块的启动脚本(startup.sh)可以指定服务日志生成目录,和使用的端口。

img

参考链接

GitHub - Apollo

码云 - Apollo 镜像

Apollo 中文文档

Apollo 官网

Apollo 使用指南

标签:opt,Apollo,Service,部署,dev,Linux,apollo,soft
From: https://www.cnblogs.com/shuiyao3/p/17289667.html

相关文章

  • linux Tun/Tap 虚拟网卡
    一、TUN、TAP虚拟网卡的工作原理:+----------------------------------------------------------------+|||+--------------------++--------------------+|||UserApplicationA|......
  • 在Linux安装Kafka监控系统EFAK
    前言EFAK(EagleForApacheKafka)是一个简单、高性能的Kafka集群监控系统,实现了监控、可视化操作Topic/Zookeeper、SQL查询、告警等功能,它以前的名字叫KafkaEagle。我们重点看看如何安装以及简单使用它。kafka版本支持:0.8.2.x,0.9.x,0.10.x,0.11.x,1.x,2.x.支持平台:Mac......
  • 在Linux安装Maven
    前言Linux系统安装、配置Maven步骤和相关资源地址,以3.8.2版本为例。安装下载解压#备用地址清华镜像https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gzecho"创建下载、编译目录">/dev/nullmkdir-p~/soft/......
  • Linux 基础
    Linux基础1.安装虚拟机网络类型#1.桥接模式 上网不需要经过其他路由,上网速度快,ip数量少,容易跟同一网段的主机ip冲突。 #2.仅主机模式 只能与宿主机进行交互,并不能上网。 #3.NAT模式 ip多,独立的网段。上网需要经过VMnet8网卡。下载虚拟机官网地址https://centos.org......
  • 在Linux安装JDK
    前言本文讲述在Linux服务器安装JDKrpm安装去Oracle官网下载.rpm格式的安装包,如Oracle-JDK8下载。也可以从CSDN-jdk-8u301-linux-x64.rpm.zip下载。echo"安装">/dev/nullrpm-ivhjdk-8u301-linux-x64.rpmecho"追加环境变量">/dev/nullecho'exportJA......
  • 在Linux安装Jenkins
    前言以Jenkins版本2.303作2例子在Linux系统直接安装的详细步骤,并解决插件下载速度慢问题。所有脚本可以直接复制在任意目录下执行。下载启动包echo"清华镜像下载启动war包到/opt/soft/jenkins目录">/dev/nullwget-P/opt/soft/jenkins--no-check-certificatehttps://mir......
  • Linux 系统快捷键
    1.linux路径#绝对路径从/开始称为绝对路径#相对路径从当前目录开始为相对路径2.特殊符号~命令行中表示当前的路径..命令行中表示上一级目录.命令行中表示当前的目录#代表了注释3.命令行快捷键ctrl+a快速移动光标到行首Homectrl+e快......
  • 用Yum在Linux安装MySQL8
    前言我们通过Yum几乎全自动的快速安装MySQL服务,这里演示的是8.0版本,给出了具体步骤、脚本、图例,和相关资料来源,以及解决远程连接相关问题。准备工作更换国内yum源提速参考CentOS更换YUM源更换yum源,国内下载速度更快。找MySQL官方yum仓库地址这一步只是告诉大家后面安装脚本......
  • linux-通配符
    Linux通配符主要用户模糊查找文件,常用的Linux通配符如下表所示:名称作用*可以匹配任意数量任意字符?可以匹配一个任意字符[]可以匹配括号中的任意一个字符[^]可以匹配指定范围之外的任意单个字符示例:[abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9......
  • linux-命令替换
    命令替换是指将命令的标准输出作为值赋给某个变量,bashshell定义了两种语法进行命令替换。一种是使用反引号,另一种是利用啊$(),两种等价格式如下:`linux命令`$(linux命令)例一:echocurrentpathis`pwd`echocurrentpathis$(pwd)例二:#创建类似这样的文件file-2023-04-0......