zoukankan      html  css  js  c++  java
  • Apollo阿波罗配置中心docker

    前言

    在分布式系统中,要改个配置涉及到很多个系统,一个一个改效率低下,吃力不讨好。用配置中心可以解决这个问题。当然配置中心有不少,以下对比的表格是照搬Apollo Wiki的。

    功能点 Apollo Spring Cloud Config 备注
    配置界面 一个界面管理不同环境、不同集群配置 无,需要通过git操作
    配置生效时间 实时 重启生效,或手动refresh生效 Spring Cloud Config需要通过Git webhook,加上额外的消息队列才能支持实时生效
    版本管理 界面上直接提供发布历史和回滚按钮 无,需要通过git操作
    灰度发布 支持 不支持
    授权、审核、审计 界面上直接支持,而且支持修改、发布权限分离 需要通过git仓库设置,且不支持修改、发布权限分离
    实例配置监控 可以方便的看到当前哪些客户端在使用哪些配置 不支持
    配置获取性能 快,通过数据库访问,还有缓存支持 较慢,需要从git clone repository,然后从文件系统读取
    客户端支持 原生支持所有Java和.Net应用,提供API支持其它语言应用,同时也支持Spring annotation获取配置 支持Spring应用,提供annotation获取配置 Apollo的适用范围更广一些

    本文采用了Apollo,然而Apollo的没有爽一点的docker镜像,所以自己写了一个docker hubgithub

    使用方法

    • 镜像中包含configservice、adminservice、portal,默认configservice。如要更改成adminservice,则在运行参数中添加对应xxx.jar,如下
    docker run chenchuxin/apollo adminservice.jar
    
    • 要修改配置直接用环境变量,例如
    docker run 
    -e spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 
    -e spring_datasource_username=ccx 
    chenchuxin/apollo
    
    • 一个比较完整的例子
    docker run 
    -e spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 
    -e spring_datasource_username=root 
    -e spring_datasource_password=xxx 
    -e server.port=8080 
    -e logging.file=/opt/logs/configservice.log 
    -v /opt/logs:/var/log/apollo 
    --network host 
    --restart always 
    --name apollo_configservice 
    chenchuxin/apollo 
    configservice.jar
    
    • 项目提供了简单的docker-compose.yml,修改成一下配置即可用
    docker-compose up -d
    

    注意

    portal设置meta_server的时候,不要用环境变量设置,在运行参数用-D设置,如

    docker run chenchuxin/apollo -Ddev_meta=http://localhost:8080 portal.jar
    
  • 作者:小新是也
  • 链接:http://www.cnblogs.com/chenchuxin
  • 来源:博客园
  • 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
查看全文
  • 相关阅读:
    太可爱了!CSS3 & SVG 制作的米老鼠钟表
    20个免费的 AngularJS 资源和开发教程
    比尔盖茨:反垄断案让我分心,不然微软定能打败安卓(胜者通吃的行业要不计代价的三班倒,评论很精彩)
    C++11 新特性之智能指针(shared_ptr, unique_ptr, weak_ptr)
    C++编译器会对没有构造函数的类生成默认构造函数吗?(有必要的时候才生成,要看情况。有反汇编验证)
    qt5信息提示框QMessageBox用法(很全)
    (RPC) Remote Procedure Call Protocol 远程过程调用协议
    分布式事务就是由多个本地事务组合而成的事务
    内存管理--虚拟内存管理技术
    NET适合搞大数据,机器学习、人工智能
  • 原文地址:https://www.cnblogs.com/chenchuxin/p/8475985.html
  • Copyright © 2011-2022 走看看