程序员的资源宝库

网站首页 > gitee 正文

Apollo配置中心

sanyeah 2024-04-08 12:52:47 gitee 4 ℃ 0 评论

一、简介

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外的安装Tomcat等应用容器。

目前支持一下客户端:Java客户端不依赖任何框架,能够运行于所有Java运行环境,同事对Spring/Spring Boot环境也有较好的支持。.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

Apollo更多介绍:https://github.com/ctripcorp/apollo。

Apollo支持4个维度管理Key-Value格式的配置:

  1. application (应用)
  2. environment (环境)
  3. cluster (集群)
  4. namespace (命名空间)

Apollo的优势还可以通过与Spring Cloud Config对比来体现出:

二、Apollo工作流程图

四、环境搭建

4.1、搭建前提

环境搭建也是参考官网的环境搭建,我们在搭建apollo配置中心的时候选择一个合适的版本,在 官网 的 Relase  Notes中:版本发布历史,官方推荐,我们选择源码编译安装:

4.2、上传apollo客户端至nexus私服仓库

说明:这个客户端是开发那边编译打包的时候需要依赖的jar包,不然怎么知道我需要下载哪里的配置文件

apollo-1.2.0.pom
apollo-client-1.2.0.jar
apollo-core-1.2.0.jar

1. apollo-1.2.0.pom的坐标为:

<dependency>
  <groupId>com.ctrip.framework.apollo</groupId>
  <artifactId>apollo</artifactId>
  <version>1.2.0</version>
  <type>pom</type>
</dependency>

2.apollo-client.jar坐标为:

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

3.apollo-core.jar坐标为:

<dependency>
  <groupId>com.ctrip.framework.apollo</groupId>
  <artifactId>apollo-core</artifactId>
  <version>1.2.0</version>
</dependency>

这些在我们的源码包里面分别存在于:

 

 但是在编译之前先要增加apollo-env.properties文件,在client和core中:

C:\Users\3\Desktop\apollo-1.2.0\apollo-core\src\main\resources\apollo-env.properties

apollo-env.properties的内容如下:各个环境配置的地址。

dev.meta=http://192.168.202.218:18080
fat.meta=http://192.168.202.219:18080
uat.meta=http://192.168.202.220:18080
pro.meta=http://192.168.202.221:18080

 然后在C:\Users\3\Desktop\apollo-1.2.0\scripts 下执行:

.\build.bat 

编译好之后,上传至nexus上就可以了。

4.3、java客户端使用

在启动Spring Boot的java文件中添加注解:

@EnableApolloConfig

通过@Value注解即可获取到值 或者 可以以类的方式作为bean加载入Spring,例如

 @EnableApolloConfig
 @Configuration
 Class A {

     @Bean
     public getB() {
         return new B();
     }
 }

 Class B {
 
     private int x;

     public void setX(int x) {
         this.x = x;
     }

     public int getX() {
         return this.x;
     }
 }

说明:其他的配置信息,请看官网(https://github.com/ctripcorp/apollo)下:Deployment -> 分布式部署指南

 

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表