前言

最近公司要做一个新项目,可能会选择SpringCloud来做微服务架构,因而更可能会要面临实现分布式配置并制定相应的解决方案,因而提前做了解决方案。

为什么选择携程Apollo?请看下图比较

springcloud 集成 OSGi springcloud集成apollo_Bash


另外我选择携程Apollo的另一个原因是Apollo的对外依赖非常少,目前只有一个Mysql,因而稳定性方面而可以避开对外依赖过多而导致分布式配置心中处于潜在风险中。要知道配置中心应该是独立于任何应用程序之外的一套能独立运行的系统,对外的依赖越少越好。

在实际使用Apollo时需要对它有一个基本了解:传送门

案例

首先申明,本阶段实现的分布式配置中心最大限度上升至FAT ENV 至于UAT和PRO则后续补充。
本小节将实现最简单的一种方式:Quick Start

  • 第一步环境准备,先装好JDK/Mysql 5.6+,参考这里
  • 第二步准备好Quick Start 安装包,下载地址参考:这里, 这个安装包是已经编译好了的,下载好之后解压如下图:
  • springcloud 集成 OSGi springcloud集成apollo_springcloud 集成 OSGi_02

  • 修改demo.sh脚本:
  • springcloud 集成 OSGi springcloud集成apollo_SpringCloud微服务_03

  • 分别配置adminservice/configservice 和 portal DB信息。我已在本地新建了ApolloConfig DB和 ApolloPortal DB,因而只需修改一下脚本即可。
  • 下载Git Bash 为什么要下载GitBash?因而 Windos下不支持shell 脚本运行,如果要强行运行需介入类似于Git Bash一样的Command GUI。
  • 运行demo.sh脚本。使用Git Bash GUI进入到Quick start安装包所在根路径:
    使用 ./demo.sh start 命令运行脚本:

springcloud 集成 OSGi springcloud集成apollo_Bash_04

  • 启动完毕:
  • springcloud 集成 OSGi springcloud集成apollo_springcloud 集成 OSGi_05

  • 检查
  • 本地打开:http://localhost:8080/
  • springcloud 集成 OSGi springcloud集成apollo_Bash_06

  • 如图所示AdminService/ConfigService/Portal都已注册到Eureka中
  • 本地打开:http://localhost:8070
  • springcloud 集成 OSGi springcloud集成apollo_Bash_07

  • 使用apollo/admin Token登录:
  • springcloud 集成 OSGi springcloud集成apollo_分布式配置_08

  • 注意:登陆之后显示的信息是我之前修改了数据库,如果是使用Init SQL 导入的话将会是原始数据,不过这一点没有影响。

小结

  • 要想顺利实现本小结目的需要对携程Apollo有一定的了解
  • 本小结使用的是最简单的一种方式来本地部署Apollo,用于初步初步了解和体验Apollo的基本功能,与实际开发/定制化开发不建议使用该方式实现部署。
  • Quick Start实现本地部署步骤: