apllo开源分布式配置中心详解

目录
  • 什么是apllo开源分布式配置中心?
  • apllo开源分布式配置中心有什么优势?
  • 如何部署apllo开源分布式配置中心?
  • 如何在springBoot项目中获取apollo的配置?

什么是apllo开源分布式配置中心?

apllo开源分布式配置中心是携程框架部门研发的一个能够集中化管理应用的不同环境、不同集群的配置,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

apllo开源分布式配置中心有什么优势?

apllo开源分布式配置中心有以下几个优势:

  • 支持多种数据格式(properties, xml, json, yaml, txt等)
  • 支持多种语言(Java, .Net, Go等)
  • 支持多种环境(DEV, FAT, UAT, PRO等)
  • 支持多种集群(default, shanghai, beijing等)
  • 支持多种命名空间(namespace),可以将不同的配置放到不同的命名空间中
  • 支持灰度发布和回滚功能
  • 支持修改推送和实时生效
  • 支持权限控制和审计功能

如何部署apllo开源分布式配置中心?

部署apllo开源分布式配置中心需要以下几个步骤:

  • 下载并解压apollo-build-scripts.zip文件
  • 修改build.sh文件中的数据库连接信息和端口号
  • 运行build.sh文件生成可执行文件
  • 运行startup.sh文件启动服务端
  • 访问http://localhost:8070/进入控制台

如何在springBoot项目中获取apollo的配置?

在springBoot项目中获取apollo的配置需要以下几个步骤:

1. 在pom.xml文件中添加apollo-client依赖

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

2. 在resources目录下创建META-INF/app.properties文件,并指定app.id和env属性

app.id=sample-app # 应用ID,与Apollo控制台保持一致
env=DEV # 环境,与Apollo控制台保持一致

3. 在application.yml或application.properties文件中指定apollo.bootstrap.enabled=true和apollo.meta=http://localhost:8080属性

# application.yml
apollo:
  bootstrap:
    enabled: true # 启用Apollo自动注入功能
  meta: http://localhost:8080 # 指定Apollo服务端地址,也可以通过-D参数传递或者通过系统变量设置

4. 在springBoot项目中使用@Value或@ConfigurationProperties注解获取配置值

// 使用@Value注解获取单个值,需要指定${}占位符和默认值,如果没有默认值,则必须在Apollo控制台设置该值,否则会报错。
// 另外,如果想要实时更新值,还需要添加@RefreshScope注解。
@RestController
@RefreshScope // 实时更新注解
public class SampleController {
  @Value("${timeout:100}") // 单个值注解
  private int timeout;
  @GetMapping("/timeout")
  public int getTimeout() {
    return timeout;
  }
}
// 使用@ConfigurationProperties注解获取对象值,需要指定prefix属性,并且在类上添加@Component或@Bean注解。
// 另外,如果想要实时更新对象,还需要添加@RefreshScope注解。
@Component // 对象注解
@ConfigurationProperties
prefix="user" // 对象前缀
@RefreshScope // 实时更新注解
public class User {
  private String name;
  private int age;
  // 省略getter和setter方法
}
// 在控制器中注入对象
@RestController
public class UserController {
  @Autowired
  private User user;
  @GetMapping("/user")
  public User getUser() {
    return user;
  }
}

5. ConfigService类来获取apollo的配置

我们公司用的是这个方法来获取配置

ConfigService类是apollo客户端提供的一个核心类,它可以通过静态方法getAppConfig()或者getConfig(namespace)来获取Config对象,然后通过Config对象的方法来获取配置值。

例如:

// 获取默认命名空间的配置
Config config = ConfigService.getAppConfig();
// 获取指定命名空间的配置
Config config = ConfigService.getConfig("test");
// 获取配置值,如果没有则返回默认值
String value = config.getProperty("key", "default");
// 添加配置变更监听器
config.addChangeListener(new ConfigChangeListener() {
  @Override
  public void onChange(ConfigChangeEvent changeEvent) {
    // 处理变更事件
  }
});

使用ConfigService获取配置的优势是:

  • 可以动态获取最新的配置,不需要重启应用
  • 可以监听配置变更事件,实现自定义逻辑
  • 可以支持多个命名空间和集群

以上就是apllo开源分布式配置中心详解的详细内容,更多关于apllo开源分布式配置的资料请关注我们其它相关文章!

(0)

相关推荐

  • SpringCloud Config分布式配置中心使用教程介绍

    目录 一.简介 二.使用 三.热刷新 四.Spring Cloud Bus(消息总线) 一.简介 Spring Cloud Config为分布式系统中的配置提供服务器端和客户端支持.可以集中管理所有环境中应用程序的配置文件.其服务器端存储的默认实现使用GIT. 优势 提供服务端和客户端支持(spring cloud config server和spring cloud config client) 集中式管理分布式环境中的配置信息(所有配置文件统一放在了GIT仓库中) 基于Spring环境提供配

  • Spring Cloud Config分布式配置中心使用介绍详解

    目录 1.分布式配置中心应用场景 2.Spring Cloud Config 2.1.Config简介 2.2.Config分布式配置应用 2.3.构建Config Server统一配置中心 2.4.构建Client客户端(在已有简历微服务基础上) 1.分布式配置中心应用场景 往往,我们使用配置文件管理⼀些配置信息,比如application.yml 单体应用架构:配置信息的管理.维护并不会显得特别麻烦,手动操作就可以,因为就一个工程: 微服务架构:因为我们的分布式集群环境中可能有很多个微服务,

  • Zookeeper如何实现分布式服务配置中心详解

    目录 1 Linux安装并启动Zookeeper 1.1 安装 1.1.1 安装 1.2 启动 3 Spring Boot配置 3.1 依赖 3.2 配置文件 3.3 项目代码 3.4 启动测试 总结 1 Linux安装并启动Zookeeper 1.1 安装 下载链接:https://archive.apache.org/dist/zookeeper/ 1.1.1 安装 [root@iZ1608aqb7ntn9Z tmp]# ls apache-zookeeper-3.5.7-bin.tar.g

  • springboot配置文件抽离 git管理统 配置中心详解

    springboot配置文件抽离,便于服务器读取对应配置文件,避免项目频繁更改配置文件,影响项目的调试与发布 1.创建统一配置中心项目conifg 1)pom配置依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</ver

  • SpringCloud微服务应用config配置中心详解

    目录 前言 一.传统应用配置痛点 二.Config 配置中心介绍 三.服务端Config Server搭建 1.pom依赖 2.application启动类配置 3.application.yml配置 4.test-dev.xml(客户端应读取的配置) 5.项目结构 四.客户端Config Client搭建 1.pom依赖 2.application启动类配置 3.bootstrap.yml配置 4.application.yml配置 5.测试controller 6.项目结构 五.动态刷新 六

  • docker compose 一键部署分布式配置中心Apollo的过程详解

    简介 说起分布式肯定要想到分布式配置中心.分布式日志.分布式链路追踪等 在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数.启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置 今天我要跟大家分享一下分布式配置中心Apollo: Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等

  • spring cloud config分布式配置中心的高可用问题

    在前面的文章中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题. 下面我们通过整合Eureka来实现配置中心的高可用,因为作为架构内的配置管理,本身其实也是可以看作架构中的一个微服务,我们可以把config server也注册为服务,这样所有客户端就能以服务的方式进行访问.通过这种方法,只需要启动多个指向同一Gitlab仓库位置的config server端就能实现

  • SpringCloud之分布式配置中心Spring Cloud Config高可用配置实例代码

    一.简介 当要将配置中心部署到生产环境中时,与服务注册中心一样,我们也希望它是一个高可用的应用.Spring Cloud Config实现服务端的高可用非常简单,主要有以下两种方式. 传统模式:不需要为这些服务端做任何额外的配置,只需要遵守一个配置规则,将所有的Config Server都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护.而客户端在指定Config Server位置时,只需要配置Config Server上层的负载均衡设备地址即可, 就如下图所示的结构. 服

  • Spring Cloud Config实现分布式配置中心

    在分布式系统中,配置文件散落在每个项目中,难于集中管理,抑或修改了配置需要重启才能生效.下面我们使用 Spring Cloud Config 来解决这个痛点. Config Server 我们把 config-server 作为 Config Server,只需要加入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-ser

  • SpringCloud微服务开发基于RocketMQ实现分布式事务管理详解

    目录 消息队列实现分布式事务原理 RocketMQ的事务消息 代码实现 基础配置 发送半消息 执行本地事务与回查 Account-Service消费消息 测试 小结 消息队列实现分布式事务原理 首先让我们来看一下基于消息队列实现分布式事务的原理方案. 柔性事务 发送消息的服务有个OUTBOX数据表,在进行INSERT.UPDATE.DELETE 业务操作时也会给OUTBOX数据表INSERT一条消息记录,这样可以保证原子性,因为这是基于本地的ACID事务. OUTBOX表充当临时消息队列,然后我

  • Kubernetes上使用Jaeger分布式追踪基础设施详解

    目录 正文 微服务架构中的可观察性 分布式追踪 Jaeger组件 架构图 Jaeger客户端 Jaeger代理 Jaeger SideCar 代理 Jaeger Daemonset 代理 Jaeger Collector 服务 Jaeger Query 查询服务 Storage Configuration 存储配置 监控 正文 作为分布式系统(或任何系统)的一个组成部分,监测基础设施的重要性怎么强调都不过分.监控不仅要跟踪二进制的 "上升 "和 "下降 "模式,还要

随机推荐