Apollo配置中心

原理和角色

在这里插入图片描述

  1. 服务通过app-id与Apollo获取配置,获取到配置后会被缓存到本地。
  2. Apollo可以实现WEB页面对配置进行CRUD操作(SpringCloud Config不具备)。
  3. Apollo的配置存储在MySQL中(SpringCloud Config存储于git)
  4. Apollo轻量级,SpringCloud Config则需要依赖于MQ、BUS消息总线

在这里插入图片描述

Apollo分为三个服务:portal、admin、config
portal:UI页面
admin:用户、角色管理,CRUD操作
config:用户和服务进行连接,为服务pull和push配置。config服务内置了Eureka

安装

环境:

  1. mysql 5.7
  2. JDK1.8

启动

下载安装包:
链接:https://pan.baidu.com/s/1b1YWUFE24Y2nZAjP6G9NIg
提取码:k380

下载文件后,拖拽至Linux服务器
在这里插入图片描述
修改配置文件,为自己的mysql数据库,需要注意的是config以及admin服务是一个数据库ApolloConfigDB, portal的数据库为ApolloPortalDB
在这里插入图片描述
修改portal服务中的在这里插入图片描述这两个文件,其中application-github.properties同上,修改数据库即可。apollo-env.properties配置文件用于配置环境:
在这里插入图片描述

数据库文件位置:
在这里插入图片描述
在mysql中执行这两个sql文件

先启动config-service,然后启动admin-service, 最后启动portal
部署好之后,可以先查看config-service启动暴露的接口
在这里插入图片描述
config中自带了Eureka,所以可以直接通过其端口号进行查看:
在这里插入图片描述
三个服务全部启动成功后,访问8070端口:
在这里插入图片描述

使用

在这里插入图片描述
进入 示例项目。
在这里插入图片描述
进入之后能够看见所属环境,以及配置,授权,回滚等操作。

创建项目

在这里插入图片描述
在这里插入图片描述
选择部门时,只有样例部门,无法进行修改,因此可以通过直接修改数据库对部门进行修改
在这里插入图片描述
填写对应的数据:
在这里插入图片描述
点击提交后,在主页面就可以看到新的项目了:

在这里插入图片描述

进入项目后,点击添加配置:
在这里插入图片描述

Java项目获取Apollo配置

springboot中导入依赖

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

测试代码:

@RestController
public class MainController {

    @Value("${mylName}")
    private String myName;

    @GetMapping("/")
    public String list() {
        System.out.println(myName);

        return "11" + myName;
    }
}

配置文件中写入:

#之前注册的AppId
app.id=001
spring.application.name=apollo-demo
#config-server的地址,不是Eureka的地址,请求的是restful接口
apollo.meta=http://192.168.116.148:8080
apollo.bootstrap.enabled=true
#配置分组
apollo.bootstrap.namespaces=application
#验证秘钥。暂时没有开启验证,因此可以暂时先去掉
#apollo.accesskey.secret=80882e6ffc524b9e8bc65664fbf95dfb

在这里插入图片描述

启动项目前,需要设置拉取配置的环境:
在这里插入图片描述

启动成功后,访问端口:
在这里插入图片描述
并且能够实时修改配置:
在这里插入图片描述
点击发布后,查看项目日志:
在这里插入图片描述
在这里插入图片描述
配置被实时修改。

AppId不要如试验中以 ‘0’开头,因为在properties文件中可以正常拉取到Apollo配置,但是如果是yaml文件,则‘001’会被翻译成‘1’,进而导致拉取配置失败。

开启验证

在这里插入图片描述
在这里插入图片描述
启动验证之后,服务即刻无法获取到最新的配置文件,但是由于缓存的原因,能获取到老的配置信息:
在这里插入图片描述
Apollo客户端会使用长轮询的方式去访问 config-service

配置完成之后,在配置文件中添加:

apollo.accesskey.secret=e9ddd90c2a904deeb4f3bbcbe7ad7cda

即可访问。

缓存

如果项目曾经成功获取到配置信息,那么配置信息会缓存到 本地的C:\opt\data\001\config-cache目录下:
在这里插入图片描述
在这里插入图片描述

配置灰度

配置灰度发布:当前配置文件针对哪几台服务器生效。(维度:IP)
讲程序打包后,拖拽至另外一台服务器上(源程序不停止),在新的服务器上运行该程序:
在这里插入图片描述
执行命令:

java -Denv=DEV  -jar apollo-demo-0.0.1-SNAPSHOT.jar

在这里插入图片描述
登录Apollo页面,点击灰度:
在这里插入图片描述
在这里插入图片描述
设置灰度规则:
由于启动了两个服务,可以把其中一个设置为灰度的配置
在这里插入图片描述
Apollo页面:
在这里插入图片描述
点击确定后,能够看到147的机器上的日志信息:
在这里插入图片描述

通过Postman访问两个服务,就可以根据不同的IP拿到不同的配置了:
在这里插入图片描述
在这里插入图片描述

命名空间(NameSpaces)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
可以看到新创建出来的命名空间了,并且可以在命名空间下获取创建新的配置:
在这里插入图片描述
如果想获取该配置,则需要修改服务配置:
在这里插入图片描述
重启服务,即可获取到配置了。

  • 10
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值