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

news2025/3/18 20:32:34

一、常见配置中心对比

  • 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的配置

在apollo修改value值后,可实时同步到应用系统 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

blender scripting 编写

blender scripting 编写 一、查看ui按钮对应的代码二、查看或修改对象名称三、案例&#xff1a;渲染多张图片并导出对应的相机参数 一、查看ui按钮对应的代码 二、查看或修改对象名称 三、案例&#xff1a;渲染多张图片并导出对应的相机参数 注&#xff1a;通过ui交互都设置好…

如何在Window系统下搭建Nginx服务器环境并部署前端项目

1.下载并安装Nginx 在nginx官网nginx: download 下载稳定版本至自己想要的目录。 解压后进入目录 2.启动Nginx服务器 启动方式有两种&#xff1a; &#xff08;1&#xff09;直接进入nginx安装目录下&#xff0c;双击nginx.exe运行&#xff0c;此时命令行窗口一闪而过&…

20231222给NanoPC-T4(RK3399)开发板的适配Android11的挖掘机方案并跑通AP6398SV

20231222给NanoPC-T4(RK3399)开发板的适配Android11的挖掘机方案并跑通AP6398SV 2023/12/22 7:54 简略步骤&#xff1a;rootrootrootroot-X99-Turbo:~/3TB$ cat Android11.0.tar.bz2.a* > Android11.0.tar.bz2 rootrootrootroot-X99-Turbo:~/3TB$ tar jxvf Android11.0.tar.…

【MySQL】数据库中为什么使用B+树不用B树

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 数 据 库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 B树的特点和应用场景&#xff1a; B树相对于B树的优势&#xff1a; 结论&#xff1a; 结语 我的其他博客 前言 在数据…

超维空间S2无人机使用说明书——31、使用yolov8进行目标识别

引言&#xff1a;为了提高yolo识别的质量&#xff0c;提高了yolo的版本&#xff0c;改用yolov8进行物体识别&#xff0c;同时系统兼容了低版本的yolo&#xff0c;包括基于C的yolov3和yolov4&#xff0c;以及yolov7。 简介&#xff0c;为了提高识别速度&#xff0c;系统采用了G…

C# WPF上位机开发(子窗口通知父窗口更新进度)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 这两天在编写代码的时候&#xff0c;正好遇到一个棘手的问题&#xff0c;解决之后感觉挺有意义的&#xff0c;所以先用blog记录一下&#xff0c;后…

数组基础及相关例题

目录 1.一维数组的初始化 2.二维数组的初始化 3.字符数组 1.puts 2.gets 3.strcat 4.strcpy 5.strcmp 6.strlen ​编辑 7. strlwr与strupr 易错习题 1 2 3 4 5 6 1.一维数组的初始化 2.二维数组的初始化 注意 第一维的长度不用指定&#xff0c;第二维的…

WU反走样算法

WU反走样算法 由离散量表示连续量而引起的失真称为走样&#xff0c;用于减轻走样现象的技术成为反走样&#xff0c;游戏中称为抗锯齿。走样是连续图形离散为想想点后引起的失真&#xff0c;真实像素面积不为 零。走样是光栅扫描显示器的一种固有现象&#xff0c;只能减轻&…

FPGA分频电路设计(2)

实验要求&#xff1a; 采用 4 个开关以二进制形式设定分频系数&#xff08;0-10&#xff09;&#xff0c;实现对已知信号的分频。 类似实验我之前做过一次&#xff0c;但那次的方法实在是太笨了&#xff1a; 利用VHDL实现一定系数范围内的信号分频电路 需要重做以便将来应对更…

B+树索引和哈希索引的区别?

B树是一个平衡的多叉树&#xff0c;从根节点到每个叶子节点的高度差值不超过1&#xff0c;而且同层级的节点间有指针相互链接&#xff0c;是有序的&#xff0c;如下图&#xff1a; 哈希索引就是采用一定的哈希算法&#xff0c;把键值换算成新的哈希值&#xff0c;检索时不需要类…

STM32独立看门狗

时钟频率 40KHZ 看门狗简介 STM32F10xxx 内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看 门狗设备 ( 独立看门狗和窗口看门狗 ) 可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给 定的超时值时&#xff0c;触发一个中…

MyBatis中select语句中使用String[]数组作为参数

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;无 &#x1f33c…

CMakeLists.txt

源码结构 生成可执行程序 # CMake最小版本号 cmake_minimum_required(VERSION 3.15.0)#增加-stdc11 set(CMAKE_CXX_STANDARD 11)#设置工程名称 project(calculate)#[[ #方法一&#xff1a;添加源码文件 #aux_source_directory(< dir > < variable >) #dir&#xf…

Netty组件基础

Netty入门简介 netty是一个异步、基于事件驱动的网络应用框架&#xff0c;用于快速开发可维护、高性能的网络服务器和客户端。 Netty优势 Netty解决了TCP传输问题&#xff0c;如黏包、半包问题&#xff0c;解决了epoll空轮询导致CPU100%的问题。并且Netty对API进行增强&#xf…

Github 2023-12-26开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2023-12-26统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目7非开发语言项目1JavaScript项目1TypeScript项目1 GPT PILOT: 从头开始编写可扩展的应用程序的开发…

MVC下的四种验证编程方式

ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表&#xff0c;但是在真正执行目标Action方法之前&#xff0c;还需要对绑定的参数实施验证以确保其有效性&#xff0c;我们将针对参数的验证成为Model绑定。总地来说&#xff0c;我们可以采用4种不同的编程模式来进行针…

北亚服务器数据恢复-服务器断电导致raid5故障的数据恢复案例

服务器数据恢复环境&#xff1a; 服务器有一组由12块硬盘组建的raid5阵列。 服务器故障&分析&#xff1a; 机房供电不稳导致服务器意外断电&#xff0c;工作人员重启服务器后发现服务器无法正常使用。 根据故障情况&#xff0c;北亚企安数据恢复工程师初步判断服务器故障原…

【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

408计算机网络错题知识点拾遗

个人向错题相关部分整理&#xff0c;涵盖真题、模拟、课后习题等。 408相关&#xff1a; 408数据结构错题知识点拾遗 408计算机网络错题知识点拾遗 计网复习资料下载整合 已进行资源绑定&#xff0c;相关计网复习资料上方下载。 第一章 计算机网络体系结构 第二章 物理层 第三…

H.266/VVC 关键帧内预测技术

在 VVC 中&#xff0c;帧内预测过程分为三个步骤&#xff1a;首先&#xff0c;从当前 CU 左侧和上方相 邻块获取参考像素&#xff0c;并对获取的参考像素值进行平滑滤波。其次&#xff0c;基于参考像素 预测得到当前 CU 像素值。最后为了提高预测像素值的精度&#xff0c;平滑滤…