一、什么是apollo?

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

二、为什么我要集成apollo?

阿波罗特性:

由于apollo相比spring cloud config等主流配置中心多了可视化管理配置和灰度发布等高级特性,所以打算放弃spring cloud config 改用apollo。

三、部署apollo

1.到github apollo的release页面下载需要的三个zip包。

https://github.com/ctripcorp/apollo/releases

2.安装mysql,然后运行如下两个apollo初始化脚本,初始化两个基本库。

https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloportaldb.sql

https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloconfigdb.sql

3.将三个zip包上传到服务器并解压,每个zip包解压出来都有一个application-github.properties文件,修改其中的mysql ip地址、端口、用户名、密码信息,指向本地的mysql数据库,然后注意将application-github.properties文件放在jar包同级目录,如下是我的目录结构和application-github.properties文件内容。

[root@localhost apollo]# ls
admin-service config-service protal
[root@localhost admin-service]# ls
apollo-adminservice-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
[root@localhost protal]# ls
apollo-env.properties apollo-portal-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
[root@localhost config-service]# ls
apollo-configservice-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456

4.修改portal目录下的apollo-env.properties文件,填上对应的各个环境配置中心地址,我是单机版所以都填了本地:

[root@localhost protal]# cat apollo-env.properties
local.meta=http://localhost:8080
dev.meta=http://localhost:8080
fat.meta=http://localhost:8080
uat.meta=http://localhost:8080
lpt.meta=${lpt_meta}
pro.meta=http://localhost:8080

5.依次运行三个jar包:

java -jar apollo-configservice-1.4.0.jar

java -jar apollo-adminservice-1.4.0.jar

java -jar apollo-portal-1.4.0.jar

6.浏览器访问http://192.168.153.131:8070,看到如下界面说明启动成功,初始用户名密码为:apollo/admin

四、spring cloud(boot)客户端集成apollo

1.在应用pom.xml添加如下maven依赖:

        <!-- 阿波罗配置中心客户端 -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>

2.在src/main/resources/META-INF目录下增加app.properties文件,内容如下:

app.id=你自己的应用唯一标识,和apollo管理后台添加的项目appid对应
apollo.autoUpdateInjectedSpringProperties=true

application.yml文件增加如下配置:

apollo:
meta: http://部署apollo服务器的ip:8080
bootstrap:
enabled: true
eagerLoad:
enabled: true

3.在代码中添加如下属性和注解即可使用apollo后台配置好的信息,apollo管理后台修改后1秒即可生效,无需重启应用服务器:

    @Value("${name}")
private String name;

后续继续更新分布式部署apollo。

spring cloud 集成分布式配置中心 apollo(单机部署apollo)的更多相关文章

  1. Spring Cloud Config 分布式配置中心使用教程

    一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...

  2. Spring Cloud 2-Config 分布式配置中心(七)

    Spring Cloud  Config  1.github配置 2.服务端配置 pom.xml application.xml Application.java 3.配置和命名 1. 配置加载顺序 ...

  3. Spring Cloud Config 分布式配置中心【Finchley 版】

    一. 介绍 1,为什么需要配置中心? 当服务部署的越来越多,规模越来越大,对应的机器数量也越来越庞大,靠人工来管理和维护服务的配置信息,变得困难,容易出错. 因此,需要一个能够动态注册和获取服务信息的 ...

  4. Spring Cloud (5) 分布式配置中心

    Spring Cloud Config 在分布式系统中,由于服务数量很多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,使用Spring Cloud ...

  5. Spring Cloud (6) 分布式配置中心-高可用

    高可用 现在已经可以从配置中心读取配置文件了,当微服务很多时都从配置中心读取配置文件,这时可以将配置中心做成一个微服务,将其集群化,从而达到高可用. 改造config-server 加入eureka ...

  6. Spring Cloud之分布式配置中心

    用服务的方式来实现 ConfigAppApplication.java package com.packtpub.ConfigApp; import org.springframework.boot. ...

  7. Spring Cloud Config 实现配置中心,看这一篇就够了

    Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul 可以代替配置中心功能,但是 Config 依然适用于 Spring Clou ...

  8. 从0开始用spring boot编写分布式配置中心-peppa

    欢迎大家一起来编写peppa github地址: github 交流群: 目前市面上比较流行的分布式配置中心有disconf.apollo,用起来还是比较方便的,然而由于在权限管理这块做得不够好,导致 ...

  9. 跟我学SpringCloud | 第六篇:Spring Cloud Config Github配置中心

    SpringCloud系列教程 | 第六篇:Spring Cloud Config Github配置中心 Springboot: 2.1.6.RELEASE SpringCloud: Greenwic ...

随机推荐

  1. Django路由之url分组(命名)匹配

    分组(命名)匹配 urls.py路由配置文件中: urlspatterns中想捕获正则表达式匹配的结果用来出传递给views.py视图函数文件使用,需要用到分组匹配,或者使用第三个参数python字典 ...

  2. 在ORACLE中实现SELECT TOP N的方法----[转]

    1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询. ...

  3. jquery 1.9版本下复选框 全选/取消实现

    http://zhangzhaoaaa.iteye.com/blog/1914497 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tran ...

  4. 30分钟快速上手Docker,看这篇就对了!

    一.历史演化 1.演化史 2.物理机时代 2.1.图解 一个物理机上安装操作系统,然后直接运行我们的软件.也就是说你电脑上直接跑了一个软件,并没有开虚拟机什么的,资源极其浪费. 2.2.缺点 部署慢 ...

  5. 微服务项目的docker自动化部署流程

    目录 微服务的Docker自动化部署 制作JDK1.8的Docker镜像 Docker常用命令介绍 制作image的一般流程 将本地的image上传至私人仓库 使用Maven插件实现自动化docker ...

  6. 循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理

    在前面随笔<循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理>中介绍了在Vue + Element整合框架中,实现了动态菜单和动态路由的处理,从而可以根据 ...

  7. [Objective-C] 019_UIVIewController

    UIViewController是iOS程序中的一个重要组成部分,对应MVC设计模式的C,它管理着程序中的众多视图,何时加载视图,视图何时消,界面的旋转等. 1.UIViewController 创建 ...

  8. MVC案例

    MVC案例分析: - 没有业务层,直接Servlet调用Dao,所以也没有业务操作.所有在DAO直接获取Connection对象 -采用MVCDs设计模式 -使用到的技术: mvc设计模式:JSP  ...

  9. doxygen上手

    doxygen {#mainpage} doxygen是干什么的 相信大家在看MCU原厂的帮助文档的时候,都能看到doxygen的logo在右下角,没错,doxygen就是用来生成帮助文档的 doxy ...

  10. 关于如何提高SRAM存储器的新方法

    SRAM是当今处理器上最普遍的内存.当芯片制造商宣布他们已经成功地将更多的电路封装到芯片上时,通常是较小的晶体管引起了人们的注意.但是连接晶体管形成电路的互连也必须收缩.IMEC的研究人员提出了一个方 ...