Apollo配置中心

一、介绍

  1. 简要介绍

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

二、架构原理

基础模型

  1. 用户在配置中心对配置进行修改并发布
  2. 配置中心通知Apollo客户端有配置更新
  3. Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用

整体架构说明

上图简要描述了Apollo的总体设计,我们可以从下往上看:

  • Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
  • Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
  • Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳
  • 在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口
  • Client通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试
  • Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试

三、使用指南

使用软硬环境

硬件要求

支持硬件

类型

要求

服务器

ARM/X86

实验硬件

类型

实验使用

服务器

ARM

软件要求

依赖软件列表

类型

要求版本

操作系统

Redhat系或ubuntu系的系统

Java

不小于1.8

Mysql

不小于5.65

实验软件版本

类型

实验版本

操作系统

Kylin-Server-V10

Java

1.8.0_41

Mysql

8.0.36

安装部署

创建数据库

安装步骤如下:

Apollo服务端共需要两个数据库:​​ApolloPortalDB​​​和​​ApolloConfigDB​​,官方已经准备好,只需要导入数据库即可。

创建ApolloPortalDB

source /your_local_path/sql/apolloportaldb.sql

导入成功后,可以通过执行以下sql语句来验证:

select `Id`, `AppId`, `Name` from ApolloPortalDB.App;

创建ApolloConfigDB

source /your_local_path/sql/apolloconfigdb.sql

导入成功后,可以通过执行以下sql语句来验证:

select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;

配置数据库连接信息

Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑​​demo.sh​​,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。

#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=apollo
apollo_config_db_password=Cloud@9000(如果没有密码,留空即可)

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=apollo
apollo_portal_db_password=Cloud@9000(如果没有密码,留空即可)

启动Apollo配置中心

执行启动脚本
./demo.sh start

当看到如下输出后,就说明启动成功了!

使用步骤

使用Apollo配置中心​
  1. 登陆 输入用户名apollo,密码admin后登录

四、常见问题

五、资料出处

  1. ​https://github.com/apolloconfig/apollo-quick-start?tab=readme-ov-file​

六、遗留问题

相关推荐

  1. Apollo(阿波罗)配置

    2024-03-23 18:38:05       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 18:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 18:38:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 18:38:05       82 阅读
  4. Python语言-面向对象

    2024-03-23 18:38:05       91 阅读

热门阅读

  1. 代码随想录学习Day 14

    2024-03-23 18:38:05       40 阅读
  2. 华为校招机试 - 循环依赖(20240320)

    2024-03-23 18:38:05       37 阅读
  3. c语言管理课程信息系统

    2024-03-23 18:38:05       44 阅读
  4. 博客字节-安全研究实习生(三面)

    2024-03-23 18:38:05       41 阅读
  5. Redis 哨兵是什么?哨兵配置详解

    2024-03-23 18:38:05       36 阅读
  6. Windows Server 2003 镜像

    2024-03-23 18:38:05       37 阅读
  7. rust - 基于AES-CBC-128的双重加密实现

    2024-03-23 18:38:05       40 阅读