当前位置: 首页 > news >正文

配置中心 之 apollo

背景

部门接收了其他部门的老项目,配置中心使用的是apollo。由于之前一直使用的是nacos,所以还是
自己学习了一下。搭建了一个本地测试环境,目前项目运行正常,故这里记录下。

Apollo简介

Apollo是一个分布式配置中心,由携程研发的开源配置管理中心,可以集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
Apollo包括服务端客户端两部分

Apollo特性

  • Apollo提供一个统一的界面集中式管理不同环境、不同集群、不同命名空间的配置
  • 同一份代码部署在不同的集群,可以有不同的配置
  • 通过命名空间 ( namespace )可以很方便地支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖
  • 配置修改可以实时生效(即热发布)
  • 所有的配置发布都有版本概念,从而可以方便地支持配置的回滚
  • 权限管理、发布审核和操作审计

application (应用)
environment (环境)
cluster (集群)
namespace (命名空间)

Apollo执行流程

在这里插入图片描述

Spring Cloud Config、Apollo 与 Nacos 对比

在这里插入图片描述

本地单机版部署

依赖版本总览

jdk1.8+
mysql 5.7+
apollo 2.0.1

下载

# 创建各个服务目录
mkdir -vp /usr/local/apollo/{apollo-adminservice,apollo-configservie,apollo-portal} && cd /usr/local/apollo# 下载服务安装包
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip apollo-adminservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip apollo-configservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip apollo-portal# 下载数据库文件
https://github.com/apolloconfig/apollo/blob/v2.0.1/scripts/sql/apolloconfigdb.sql
https://github.com/apolloconfig/apollo/blob/v2.0.1/scripts/sql/apolloportaldb.sql# 开始解压
unzip apollo-adminservice-2.0.1-github.zip -d /usr/local/apollo/
unzip apollo-configservice-2.0.1-github.zip -d /usr/local/apollo/
unzip apollo-portal-2.0.1-github.zip -d /usr/local/apollo/

配置数据库

创建两个数据库apolloconfigdb, apolloportaldb,并把刚才下载的数据库文件导入到对应的数据库中。

mysql -uroot -p < /root/apolloconfigdb.sql
mysql -uroot -p < /root/apolloportaldb.sql
类似于上面这样

配置服务

服务启动顺序 apollo-configservieapollo-adminserviceapollo-portal

备注: 网页服务只需要部署一个即可,其他服务如果是分布式,那就都部署了(具体ChatGPT下)。

配置apollo-configservice
#进入目录
cd /usr/local/apollo/apollo-configservie/config#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = xxx
spring.datasource.password = xxx#启动测试命令,后期统一编写systemctl文件
cd /usr/local/apollo/apollo-configservie/scripts && ./startup.sh
apollo-adminservice
#进入目录
cd /usr/local/apollo/apollo-adminservice/config#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = xxx
spring.datasource.password = xxx#程序测试
cd /usr/local/apollo/apollo-adminservice/scripts && ./startup.sh
配置apollo-portal
#进入目录
cd /usr/local/apollo/apollo-portal/config#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://xxx:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = xxx
spring.datasource.password = xxx
配置apollo-portal的meta service信息
cd /usr/local/apollo/apollo-portal/config
vim apollo-env.properties
# 假设
DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,
FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,
UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,
PRO的apollo-configservice绑定了域名apollo.xxx.com,那么可以如下修改各环境meta service服务地址,格式为${env}.meta=http://${config-service-url:port},如果某个环境不需要,也可以直接删除对应的配置项,这里就用了dev和pro环境dev.meta=http://192.168.3.132:8080
#fat.meta=http://localhost:8080
#uat.meta=http://localhost:8080
#lpt.meta=${lpt_meta}
#pro.meta=http://192.168.3.132:8080#启动服务
cd /usr/local/apollo/apollo-portal/scripts && ./startup.sh

登录网页测试

地址:http://localhost:8070/
初始账号 apollo 密码 admin

在这里插入图片描述

配置简单说明

配置环境

网页数据库中的serverconfig表:
在这里插入图片描述
环境取值范围:
public enum Env{
LOCAL, DEV, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;
}

添加配置参数

创建应用 => 创建集群(可选) => 创建命名空间(可选) => 添加参数 => 发布参数
在这里插入图片描述

Springboot 使用Apollo

依赖

<dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>1.4.0</version>
</dependency>

配置

apollo:bootstrap:eagerLoad:enabled: trueenabled: truenamespaces: common.config,application,network.configcluster: defaultmeta: http://localhost:8080
app:#对应apollo里面创建的项目名  jvm -Dapp.id 环境变量 APP_IDid: test

启动类上加注解 @EnableApolloConfig

参考文章

https://blog.csdn.net/yyuggjggg/article/details/122308489

https://www.cnblogs.com/yang5726685/p/18131746

https://blog.csdn.net/zhaoxinxiansheng/article/details/140541620

https://blog.csdn.net/qq_47183158/article/details/142211062


http://www.mrgr.cn/news/82027.html

相关文章:

  • java 搭建一个springboot3.4.1项目 JDK21
  • 滤波器的主要参数
  • ruoyi开发学习
  • Lua迭代器如何使用?
  • 数据结构9.3 - 文件基础(C++)
  • 【Linux】信号相关知识详细梳理
  • Postman[8] 断言
  • python文件操作相关(excel)
  • SpringJPA使用崩溃了
  • Web安全 - “Referrer Policy“ Security 头值不安全
  • RK3568 bsp 9 - USB调试记录
  • 深度学习blog- 数学基础(全是数学)
  • C++类与对象(三)-- 再谈构造函数(细嗦初始化列表)、static成员
  • 《机器学习》从入门到实战——逻辑回归
  • 机器学习之逻辑回归算法、数据标准化处理及数据预测和数据的分类结果报告
  • JDK 21 的重要特性
  • Java方法使用详解:从基本概念到进阶技巧
  • 一个响应式的系统 具有黑白俩个主题
  • 学习vue3的笔记
  • Vue 中el-table-column 进行循环,页面没渲染成功
  • 基本算法——聚类
  • Android原生Widget使用步骤
  • Unity开发AR之Vuforia-MultiTarget笔记
  • 在React中引入tailwind css(图文详解)
  • 刷机TP-Link tp-link-WDR5660
  • 打印进度条