apollo入门

1. apollo简介

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

服务端基于Spring Boot和Spring Cloud开发,打包后能够直接运行,不须要额外安装Tomcat等应用容器。mysql

Java客户端不依赖任何框架,可以运行于全部Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。git

.Net客户端不依赖任何框架,可以运行于全部.Net运行时环境。github

详细介绍,请前往:https://github.com/ctripcorp/apollospring

2. apollo安装搭建

1. 环境准备

  • java:JDK 1.8.x
  • maven:3.2.2
  • mysql:5.7.18
  • idea: 2019.1.3
  • git : 2.10.0
  • apollo: 1.4.0
    以及各个组件对应的版本,其中 除了 idea 、git 外,其余都是必须的,请查缺补漏的部署环境。

2. 安装包下载

从url中下载所须要的连接地址https://github.com/ctripcorp/apollo/releasessql

下载三个包:数据库

  • apollo-adminservice-1.6.1-github.zip
  • apollo-configservice-1.6.1-github.zip
  • apollo-portal-1.6.1-github.zip

3. 建立数据库

数据库要求5.6+, 安装的5.7的数据库bootstrap

mysql> SHOW VARIABLES WHERE Variable_name = 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version       | 5.7.30 |
+---------------+--------+
1 row in set (0.01 sec)

建立两个数据库springboot

mysql> create database ApolloConfigDB default CHARACTER SET = utf8mb4;
Query OK, 1 row affected (0.00 sec)
服务器

mysql> create database ApolloPortalDB default CHARACTER SET = utf8mb4;
Query OK, 1 row affected (0.00 sec)

4. 配置数据库

1. portal

scripts\startup.sh 修改端口号(默认是端口容易冲突,因此本身修改未使用的端口号,也便于管理),日志目录也能够根据本身习惯改动

apollo入门
config/apollo-env.properties 配置须要管理的环境的config端口
apollo入门
config/application-github.properties 配置portal的数据库链接
apollo入门



2. config

scripts\startup.sh 修改端口号(原理与Portal修改同样,防止冲突,便于管理),日志目录也能够根据本身习惯改动

apollo入门

config/application-github.properties 配置apollo-config的数据库链接(此处是链接的dev环境的配置,由于我有多套环境的配置,如果pro环境的配置,则连pro的数据库就好)
apollo入门

3. admin

scripts\startup.sh 修改端口号(原理与Portal修改同样,防止冲突,便于管理),日志目录也能够根据本身习惯改动

apollo入门

config/application-github.properties 配置apollo-config的数据库链接(此处是链接的dev环境的配置,由于我有多套环境的配置)

apollo入门

5. 部署应用

将本身修改好配置的安装包上传到服务器(我是放在/opt/apollo文件夹下,位置本身定,关系不大)

apollo入门

而后修改script文件夹的权限,由于默认是读写权限,没有执行权限 :chmod -R 755 scripts,这样启动和中止脚本就有了执行权限,每一个script文件夹都须要执行权限

而后再执行每一个startup.sh文件(可能会失败,失败就须要看启动日志了,日志路径启动脚本里面有配置),所有启动成功以后,就能够去页面访问咱们的apollo的portal了

apollo入门
apollo入门

帐号密码默认为 apollo / admin

进来后就能看到本身配置的多套环境了
apollo入门

3. apollo中配置名词的对应关系

首先是有不一样的环境

环境下面有不一样的集群

集群下面有不一样的namespace

以下图所示:

apollo入门

4. springboot项目接入apollo

1. maven依赖

<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.2.0</version>
</dependency>

2. 在apollo中建立项目

在应用正式接入以前需在配置中心建立项目,应用Id为应用获取指定配置的惟一标识,建立后不可修改
apollo入门

3. 添加配置项并发布

若是你只使用到application.property, 那你只须要使用下图中的示例就能够了.
apollo入门

4. 添加Namespace

若是application没法知足你的条件, 你能够建立namespace, 你能够简单理解成和application同一个数量级别的文件.你在启动的时候, 默认是指定application的, 也能够指定增长其余的namespace.

  • Namespace是配置项的集合,相似于一个配置文件的概念;

  • Namespace的获取权限分为两种:private和public,public权限的Namespace,能被任何应用获取;

  • 建立项目的时候,会默认建立一个application的private权限的Namespace;

  • 公共类型的Namespace至关于游离于应用以外的配置,且经过Namespace的名称去标识公共Namespace,因此公共的Namespace的名称必须全局惟一

在项目配置页面点击添加Namespace,进入添加页面

apollo入门

若是已有公共的Namespace则直接关联便可,没有则点击建立Namespace,填写名称并选择类型,填好备注点击提交便可完成建立,属性添加同默认Namespace一致。

apollo入门

关联的Namespace能够在项目中选择使用自定义的属性值覆盖公共配置项。
apollo入门

5. 配置参数

在META-INF\app.properties文件增长配置项app.id=xxxx,app.id是用来标识应用身份的惟一id;

apollo入门

在application-env.properties文件增长以下配置,namespaces默认为application,meta为配置中心服务端地址.

apollo.bootstrap.enabled=true
apollo.bootstrap.eagerLoad.enabled=true       #将配置中心加载时机提早,能够管理logback日志配置
apollo.bootstrap.namespaces=application,IT.LOGGER     #多个namespace用英文逗号分隔
apollo.meta=http://10.253.128.21:8080,http://10.253.128.20:8080

咱们目前使用统一是application.properties, apollo的测试环境和正式环境是区分开来的, 咱们经过启动参数来替换appo.meta的参数来分别区分uat环境和生产环境

5. 服务端项目管理

1. 项目管理员管理

在项目配置页面点击项目管理进入管理页面,管理员具备权限(建立Namespace、建立集群、管理项目、Namespace权限)
apollo入门

2. Namespace权限管理

在项目配置页面的Namespace上点击受权,区分修改权和发布权,区分环境
apollo入门

3. 查看发布历史

在项目配置页面的Namespace上点击发布历史
apollo入门

4. 项目配置回滚

在项目配置页面的Namespace上点击回滚,回滚后变为修改状态,将错误配置修改后可从新进行发布操做
apollo入门

5. 灰度发布

在项目配置页面的Namespace上点击灰度,建立灰度版本,
apollo入门

在灰度版本上增长或修改配置,而后点击灰度规则标签

apollo入门

新增规则,选择要灰度测试的客户端,完成后选择灰度发布完成发布,或者放弃灰度

apollo入门

灰度测试完成后选择全量发布进行主版本合并,并删除灰度版本。

参考地址:
http://www.javashuo.com/article/p-ckojmgwb-go.html
https://blog.csdn.net/gaojie_csdn/article/details/83510839

相关文章
相关标签/搜索