美文网首页分布式架构
Apollo中心配置框架

Apollo中心配置框架

作者: fangPo | 来源:发表于2020-06-18 16:05 被阅读0次

介绍

  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进行结合的


apollo_interface.png

与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客户端可以获取到信息并且进行热更新

configurate.png log.png

相关文章

  • Apollo中心配置框架

    介绍   Apollo中心配置框架,是携程框架研发的分布式配置中心,对标阿里系的Diamond框架。能够集中化管理...

  • 配置中心

    Apollo简介 Apllo为携程开发的框架,用作配置中心,本系统基于apollo-1.4.0版本 所需环境 jd...

  • Apollo入门学习

    Apollo入门学习 简介 Apollo是一个配置中心,类比的配置中心有Spring Cloud Config 以...

  • Apollo 公共 Namespace 使用

    背景 现在使用 Apollo 配置中心框架的公司越来越多了,也希望写这篇文章对刚入手 Apollo 的同学有所帮助...

  • springboot集成apollo

    一、简介 1.Apollo 是什么?Apollo(阿波罗)是携程框架部门研发的分布式配置中心。服务端基于Sprin...

  • SpringBoot扩展点EnvironmentPostProc

    一、背景 之前项目中用到了Apollo配置中心,对接Apollo配置中心后,配置中心的属性就可以在程序中使用了,那...

  • Apollo的学习

    关于apollo Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的...

  • Apollo源码解析-架构篇

    1、apollo简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集...

  • Apollo配置中心

    Apollo介绍 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群...

  • spring cloud 集成 apollo(单机版apollo

    一、什么是apollo? Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不...

网友评论

    本文标题:Apollo中心配置框架

    本文链接:https://www.haomeiwen.com/subject/iqvuxktx.html