前言
本小节我们将学习如何在云服务器上部署携程Apollo分布式配置中心 Standalone 版。
要完成本小节案例,需对Apollo 有比较深入的了解,如还未学习Apollo,请转至:
SpringCloud微服务 Apollo分布式配置中心实现(四) 学习Apollo 系列;
或者Apollo Github :Apollo。
案例
本案例将使用Apollo Source Code + Quick Start 的方式部署Apollo。
-
添加新的安全组规则:因为Apollo 本身就已是个mini版的微服务模式的分布式系统,用到了Eureka,所以安全组必须添加两个:
8080是Apollo Eureka专用Port 8087是Apollo portal 专用port。
-
获取Apollo Source Code:获取Apollo Source Code 有两种方式:
- Apollo Github:Apollo 开源地址,目前最新的V-1.3的版本。
- Apollo Customized:我自己从Apollo上拉取下来的Source Code(V-1.2版本),用于自定义开发(源码是Apollo的,不做任何商业用途,只限个人使用)。
以上两种方式获取 的 Source Code 在部署方式上是一样的,只是第二个我做了一些自定义开发所以,本案例我将主要使用第二种方式作为Source Code 部署Apollo。
-
数据库导入:将如下两个sql文件导入到数据库中。
apolloconfigdb.sql是Apollo admin端的配置数据信息,apolloportal.sql 是Apollo Portal端的配置数据信息。
-
下载Apollo Quick Start:apollo-build-scripts(V-1.2):
-
点击Clone or download,下载Zip包;
-
在根目录下新建/ides/apollo 并上传该Zip包;
-
解压Zip包:
-
修改数据库配置信息:修改apollo-build-scripts-master/demo.sh:
-
删除 apollo-build-scripts-master 下的 apollo-all-in-one.jar:apollo-all-in-one.jar是Apollo部署运行的核心jar包。后面我们会用本地打成的包来替代。
因为我的Apollo Source Code 是V-1.2的所以我的Quick Start 版本也是 V-1.2的,这里需要特别注意的是,Apollo Source Code版本 必须要与 Quick Start版本兼容,如何知道这两个版本是否兼容呢?
1、打开Aopllo 版本介绍:
2、How to upgrade from v1.2.0 to v1.3.0 中有介绍到:There is no schema change between v1.2.0 and v1.3.0. 这就说明 V-1.2 到 V-1.3 没有Schema 变化,即1.3的Source Code可以使用1.2的Quick Start部署。
3、若出现版本升级导致 Schema 变化,比如假设Apollo V-1.4升级了Schema 那么我相信Quick Start 也会做同步更新的,这个倒不必担心。 -
-
本地打包:把Apollo Source Code本地打包,进入项目根目录,然后执行:
mvn clean package -pl apollo-assembly -am -DskipTests=true
如果是Apollo 源码,即从Github上fork下来的代码需要:修改apollo-configservice, apollo-adminservice和apollo-portal的pom.xml,注释掉spring-boot-maven-plugin和maven-assembly-plugin
-
修改jar包,进入本地 microservice-apollo\apollo-assembly\target目录下:
将如上Highlight 的jar复制一份并重新命名为:apollo-all-in-one.jar
将 apollo-all-in-one.jar 上传至云服务器的 apollo-build-scripts-master 下(我的绝对路径是/ides/apollo/apollo-build-scripts-master):
-
在 apollo-build-scripts-master 下运行:
./demo.sh start
Apollo 正常运行如下:
-
访问:
-
Apollo Eureka:http://公网IP:8080:
-
访问Apollo Portal:
使用默认的apollo/admin登录:
如此我们便成功在云服务器上使用Apollo Customized Code 部署了携程Apollo 分布式配置中 Sandalone版本。
-
小结
首先要在云服务器部署Apollo 必须要对Apollo 有比较深入的了解。
- 使用Apollo Source Code/Apollo Customized Code + Quick Start 是最快捷方便部署Apollo的方式。
- 使用以上方式部署是一定要注意Code版本和Quick Start版本是否兼容,通常而言都使用最新版本的话是互相兼容的。
- 使用Apollo Customized Code必须要:修改apollo-configservice, apollo-adminservice和apollo-portal的pom.xml,注释掉spring-boot-maven-plugin和maven-assembly-plugin,否则打包会出现问题。本案例中的相关代码已注释。
- apollo-all-in-one.jar 是demo.sh中定义的jar包名,也是Apollo部署运行的核心jar包,当然你也可以修改该jar名,如果这么做那么你也必须修改demo.sh中apollo-all-in-one.jar的引用
- 运行Apollo:./demo.sh start
- 停止Apollo运行:./demo.sh stop