博客摘录「 Apollo安装和基本使用」2023年11月27日

常见配置中心对比

  • Spring Cloud Config: https://github.com/spring-cloud/spring-cloud-config
  • Apollo: https://github.com/ctripcorp/apollo
  • Nacos: https://github.com/alibaba/nacos

对比项目/配置中心

spring cloud config

apollo

nacos(重点)

开源时间

2014.9

2016.5

2018.6

配置实时推送

弱支持(Spring Cloud Bus)

支持(HTTP长轮询1s内)

支持(HTTP长轮询1s内)

版本管理

支持(Git)

自动管理

自动管理

配置回滚

弱支持(Git+Bus)

支持

支持

配置的灰度发布

理念上支持,可操作性不强

支持

1.1.0开始支持

权限管理

不支持(没有区分用户、角色、权限的概念)

支持

1.2.0开始支持

多集群多环境

对集群概念支持较弱

支持

支持

多语言

只支持Java

Go,C++,Python,Java,.net,OpenAPI

Python,Java,Nodejs,OpenAPI

分布式高可用最小集群数量

Config-Server2+Git+MQ

Config2+Admin3+Portal*2+Mysql=8

Nacos*3+MySql=4

配置格式校验

不支持

支持

支持

通信协议

HTTP和AMQP

HTTP

HTTP

数据一致性

Git保证数据一致性,Config-Server从Git读取数据

数据库模拟消息队列,Apollo定时读消息

HTTP异步通知

Apollo原理及安装

  • Apollo官方文档

 配置发布后实时推送到客户端的流程

  1. 用户在Portal操作配置发布
  2. Portal调用Admin Service的接口操作发布
  3. Admin Service发布配置后,发送ReleaseMessage给各个Config Service
  4. Config Service收到ReleaseMessage后,通知对应的客户端

客户端建立与服务端长链接进行通信(通过Http Long Polling实现)

 Apollo安装

  • 环境要求:
Java版本要求:1.8
MySQL版本要求:5.6.5+-  Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。-  Apollo的表索引是大字段,低版本不满足要求-  mysql版本检查命令为: SHOW VARIABLES WHERE Variable_name = 'version';

代码地址

  https://gitee.com/apolloconfig/apollo.git

 当前master 版本是2.2.0

目录结构

/scripts/sql里找到数据库脚本apolloconfigdb.sql,apolloportaldb.sql,新建数据库并初始化数据

修改数据库配置

/scripts/build.bat 里面修改数据库链接地址和密码

set apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?serverTimezone=UTC&characterEncoding=utf8"
set apollo_config_db_username="root"
set apollo_config_db_password="123456"rem apollo portal db info
set apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?serverTimezone=UTC&characterEncoding=utf8"
set apollo_portal_db_username="root"
set apollo_portal_db_password="123456"

如果需要修改端口,可以打开目录apollo\apollo-portal\src\main\resources,修改application.yml

同理,config service和admin service如果需要修改,打开相应文件修改

编译打包

windows运行build.bat,进行打包

完成后在上面目录中找到jar包,可以拷贝到同一目录,进行启动

启动脚本示例:

@echo off
start cmd /c "java -jar apollo-configservice-2.2.0-SNAPSHOT.jar"
start cmd /c "java -jar apollo-adminservice-2.2.0-SNAPSHOT.jar"
start cmd /c "java -jar apollo-portal-2.2.0-SNAPSHOT.jar"
spause   // 防止运行完毕后直接关闭界面

启动后,打开  http://localhost:8070/ 账号/密码:apollo/admin

调整ApolloPortal配置

服务配置项统一存储在ApolloPortalDB.ServerConfig表中,可以通过管理员工具 - 系统参数页面进行配置:

集成SpringBoot

版本号根据具体的版本而定

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

 application.properties 中配置

app.id=app1
apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true
apollo.bootstrap.namespaces=application,bm1.bmname
apollo.meta=http://localhost:8080
apollo.cache-dir=D:\\var
apollo.cluster=default

主运行类

@SpringBootApplication
@EnableApolloConfig
public class BaseClientApplication {	public static void main(String[] args) {SpringApplication.run(BaseClientApplication.class, args);}}

这时启动已经可以使用apollo从配置信息

使用方式

  

  @Value("${uuid_url}")private String uuidUrl;

Apollo的配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/299873.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Visual Studio调试VisionPro脚本

使用Visual Studio调试VisionPro脚本 方法一 &#xff1a; 修改项目文件 csproj步骤&#xff1a; 方法二 &#xff1a; Visual Studio附加功能步骤&#xff1a; 方法一 &#xff1a; 修改项目文件 csproj 步骤&#xff1a; 开启VisionPro脚本调试功能 创建一个VisionPro程序…

【c++】入门2

函数重载 函数重载&#xff1a;是函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同&#xff0c;常用来处理实现功能类似数据类型 不同的问题。 c区分重载函数是根据参数…

Cesium.js三维地图的实现(依托天地图CDN文件)

零、技术选型&#xff1a; Vue2、VueCli5、天地图、Cesium.js 一、通过天地图官网案例实现 需要引入天地图官方提供的CDN链接访问Cesium.js相关文件 相关文件&#xff1a; https://api.tianditu.gov.cn/cdn/demo/sanwei/static/cesium/Cesium.js https://api.tianditu.gov.cn/…

短视频矩阵系统的崛起和影响

近年来&#xff0c;短视频矩阵系统已经成为了社交媒体中的一股新势力。这个新兴的社交媒体形式以其独特的魅力和吸引力&#xff0c;迅速吸引了大量的用户。这个系统简单来说就是将海量短视频整合在一个平台上&#xff0c;使用户可以方便地观看和分享好玩有趣的短视频。 短视频…

给零基础朋友的编程课07 - 代码

给零基础朋友的编程课07-初识色彩、初识变量、案例3讲解_哔哩哔哩_bilibili Code: // // 案例3 // //// -设定画面- // size(1000, 1000); // 设置画面大小 background(7, 119, 132); // 设置背景颜色// - 绘画 - //// 1 绘制垂线 // 设定线条风格 …

等级保护安全的管理机构与管理制度

目录 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定和发布 评审和修订 安全管理机构的控制点 岗位设置 人员配备 授权和审批 沟通和合作 审核和检查 安全管理制度的控制点 安全管理制度 指定…

VMware17Pro虚拟机安装Linux CentOS 7.9(龙蜥)教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装Linux4.1 新建虚拟机4.2 安装操作系统4.2.1 选择 ISO 映像文件4.2.2 开启虚拟机4.2.3 选择语言4.2.4 软件选择4.2.5 禁用KDUMP4.2.6 安装位置配置4.2.7 网络和主机名配置…

小白入门之安装IDEA

重生之我在大四学JAVA 第二章 安装IDEA开发工具 文章以IDEA2019版本为例&#xff0c;新版本激活方式不同 勾选创建桌面图标&#xff0c;接着install就可以了 选择这个文件 存在这个表示安装Po解插件了 然后打开IDEA 一定要勾选&#xff0c;不勾选不能自动激活 到…

基于SSM+Vue的教材信息管理系统(Java毕业设计)

点击咨询源码 大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的…

SpaceDesk如何连接平板/PC(生产力副屏)

1、下载安装 分为安卓端和PC端&#xff0c;两个设备都需要安装对应的软件。 SpaceDesk官网 https://link.zhihu.com/?targethttp%3A//spacedesk.net/ 需要魔法上网。安装过程比较简单&#xff0c;无脑下一步即可。 我已经把安装包准备好了&#xff0c;如果不想自己找&#…

C++ 比 C语言的新增的特性 1

1. C是C的增强 1.1 C是静态类型的语言&#xff0c;具有严格的数据类型检查 1.1.1 c 因为const修饰的变量不允许修改&#xff0c;但是只给了警告&#xff0c;不严谨 const int a10;a20; //报错int *p&a;*p20;//a的值&#xff1f; test1.c:6:9: warning: initialization dis…

解决Qt“报无法定位程序输入点xxx于动态连接库“问题

今天&#xff0c;在使用QtVS2019编译工程时&#xff0c;弹出"无法定位程序输入点xxx于动态链接库"问题&#xff0c;如图(1)所示&#xff1a; 图(1) 报"无法定位程序输入点xxx于动态链接库"问题 出现这种问题的原因有很多&#xff1a; (1) 工程Release/Deb…