Apollo中心配置框架

介绍

  Apollo中心配置框架,是携程框架研发的分布式配置中心,对标阿里系的Diamond框架。能够集中化管理和应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
  服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomacat等应用容器。
  Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot有较好的支持。

在Linux上配置Apollo

  具体参考Apollo quick start教程,另外,如果不想编译的话,可以去编译好的版本去下载。在部署过程中可能遇到的坑
1.当时ubuntu上面安装的系统环境的JAVA_HOME 是JDK13,貌似并不支持,后来重新下载了JDK8,并且在~/.bashrc上修改JAVA_HOME以及其它参数,具体可以参考如何在UBUNTU上配置JAVA环境,最后在命令行中输入,“java -version”,如果输出“java version 1.8…”字样,代表配置成功
2.由于主要的外部依赖是mysql,所以我们需要提前把mysq配置好,主要是ApolloPortalDB,ApolloConfigDB两个数据库,编译好的版本中提供了对应的sql语句,从创建数据库开始到插入数据,都已经完成,另外,demo.sh中需要配置对应的数据库地址和用户名和密码
3.项目启动会占用8070,8080,8090三个端口,如果有tomcat在运行的话,8080端口被占用可能就会出现异常,项目通过./demo.sh start启动
进入后用默认的账号密码 apollo/admin,进入可以看到界面,我自己新添加了几个项目,是与Spring boot进行结合的

在这里插入图片描述

与Spring Boot进行结合

  与Spring boot结合项目可以参考apllo-use-cases这个项目,我主要实践了与dubbo、zookeeper结合的基于Apollo的微服务配置中心,以及基于Spring-Boot在日志系统中进行日志输出等级的热更新实践

Apollo+dubbo+zookeeper

  dubbo和zookeeper的配置会在下一篇文章讲到,整个项目分为dubbo-api、dubbo-provider、dubbo-consumer,provider作为服务提供方,consumer作为服务消费方,在dubbo的微服务架构中,如果我们要使用proivder提供的实现的service,那么service包的路径和内容需要完全一致,所以将service放在api的package下面,作为一个暴露给外部的接口使用,在application.properties中需要进行配置

app.id=spring-boot-dubbo-consumer
#注释set apollo meta server address, adjust to actual address if necessary
apollo.meta=http://10.214.143.7:8080
#will inject 'application' namespace in bootstrap phase
apollo.bootstrap.enabled=true
dubbo.application.name = spring-boot-dubbo-consumer
#RegistryConfig Bean
dubbo.registry.protocol = zookeeper
dubbo.registry.address = 127.0.0.1:2181

  app.id需要与apollo中配置一致,另外我的apollo是部署在10.214.143.7这台机器上的(校园内网),所以需要修改meta信息,下面的dubbo配置就是关于注册中心zookeeper的地址信息,提供方也是类似的配置方法,另外使用微服务的两边需要有dubbo下面的@service和@reference的注解,注意不是annotation包下面的service,而是import com.alibaba.dubbo.config.annotation.Service; 具体需要去查找dubbo+zookeeper配置分布式微服务的,之后也会出一篇文章(又开始挖坑了)。之后两个项目都跑起来,就可以开心得使用微服务啦~

Apollo热更新日志等级

  我们可以去想象这样一个场景,当我们的线上服务出现了一些问题,但是并没有到达系统error的级别,这时候,我们的线上服务并没有抛出error的异常,我们这时候想去看系统的其它信息,除非是把系统关闭,重新设置日志等级,再重新复原刚刚的情景,这样是不是显得非常的繁琐。如果我们通过Apollo配置中心,只需要配置一个数值,就可以把日志等级从error变到debug,可以去观察debug的信息,这就是配置中心的好处,另外也可以一键切换预发和生产环境,提高工作效率。
  另外,我们再去想象一个场景,因为Apollo本来就是服务于微服务配置管理场景,当我们的微服务系统,需要更新时候,如果去一台台机器去重新开启和关闭,就显得非常繁琐,那这时候,配置中心的用处就体现出来,可以一个人去管理多台集群,提高运维的效率。
我们需要去application.properties文件中配置

logging.level.com.ctrip.framework.apollo.use.cases.spring.boot.logger = warn

我们新建一个对应的项目之后,去修改logger的参数,debug代表输出info error warn debug的信息,error只输出error,修改参数后1s客户端可以获取到信息并且进行热更新
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值