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

发布时间:2023年12月25日

常见配置中心对比

对比项目/配置中心

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原理及安装

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

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

文章来源:https://blog.csdn.net/yunxing323/article/details/134638689
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。