# springboot-apollo **Repository Path**: ggg/springboot-apollo ## Basic Information - **Project Name**: springboot-apollo - **Description**: springboot整合apollo实现分布式配置中心 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-04-29 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Apollo调研笔记 ## 1、快速安装Apollo ### 1.1 下载 下载地址:https://github.com/ctripcorp/apollo/releases 需要下载: - adminservice - configservice - portal ### 1.2 安装 #### 1.2.1 Java --- - Apollo服务端:1.8+ - Apollo客户端:1.7+ 由于Quick Start会在本地同时启动服务端和客户端,所以需要在本地安装Java 1.8+。 在配置好后,可以通过如下命令检查: ``` java -version ``` 样例输出: ``` java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) ``` Windows用户请确保JAVA_HOME环境变量已经设置。 #### 1.2.2 MySQL --- - 版本要求:5.6.5+ Apollo的表结构对`timestamp`使用了多个default声明,所以需要5.6.5以上版本。 连接上MySQL后,可以通过如下命令检查: ``` SHOW VARIABLES WHERE Variable_name = 'version'; ``` | Variable_name | Value | | ------------- | ------ | | version | 5.7.11 | #### 1.2.3 初始化数据 执行apolloconfigdb.sql和apolloportaldb.sql ```sql source apolloconfigdb.sql source apolloportaldb.sql ``` #### 1.2.4 启动Applo - 启动config-service > 默认端口为8080 ```shell java -Dspring.datasource.url=jdbc:mysql://192.168.1.6:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=123456 -jar apollo-adminservice-1.6.1.jar ``` - 启动admin-service > 默认端口为8090 ```shell java -Dspring.datasource.url=jdbc:mysql://192.168.1.6:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=123456 -jar apollo-configservice-1.6.1.jar ``` * 启动portal > 默认端口为8070 ```shell java -Ddev_meta=http://localhost:8080 -Dspring.datasource.url=jdbc:mysql://192.168.1.6:3306/ApolloPortalDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=123456 -jar apollo-portal-1.6.1.jar ``` > 注意:要修改数据库连接地址、用户名、密码。也可以通过-Dserver.port来修改服务启动的端口。 --- ## 2、在应用程序中集成Apollo > 示例地址:https://gitee.com/ggg/springboot-apollo.git > 注意:本示例是根据namespace来区分工程的 ```xml #服务端口 server.port=9017 #appid app.id=account-service #apollo-configservice地址 apollo.meta=http://127.0.0.1:8080 #在项目启动的bootstrap阶段,向Spring容器注入配置信息 apollo.bootstrap.enabled=true #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=application,ns1 ``` 特别注意 #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=application,ns1 我们要向实现多个小工程合并成一个大工程,可以使用namespace来区分和合并,比如 我们现在有三个小成功A B C 我们可以将A B C 三个工程使用同一个appid,但是为每一个小工程定义不同的namespace 比如namespace-a namespace-b namespace-c 配置文件分别定义如下: A工程 ```properties #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=namespace-a ``` B工程 ```properties #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=namespace-b ``` C工程 ```properties #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=namespace-c ``` 当我们要合并成一个大工程的时候,只需要将配置文件修改为 ```properties #默认会有一个名为application的namespace,多个使用,分隔 apollo.bootstrap.namespaces=namespace-a,namespace-,namespace-c ``` --- ## 3、快速体验参见 https://github.com/ctripcorp/apollo/wiki/Quick-Start