【Apollo】01-Apollo简介与安装

Apollo简介与安装

配置中心:将配置文件中的配置文件信息,存放在配置中心中。若项目使用微服务,服务众多,每一个配置信息都填写在配置文件中,不利于我们对于配置信息的管理。配置中心就是统一管理各种应用配置的基础服务组件。

集中管理配置,将所有的配置信息从项目中抽离出来,使用配置中心进行管理。

  1. 配置容易读取和修改;
  2. 添加新配置简单直接;
  3. 支持对配置的修改的检视以把控风险;
  4. 支持查看配置的历史修改记录;
  5. 不同部署环境支持隔离。

简介

主流的配置中心

  1. DisConf(不在维护)
  2. Spring Cloud Config
  3. Apollo
  4. Nacos

配置中心功能对比

功能点 Spring Cloud Config Apollo Nacos
配置实时推送 支持(Spring Cloud Bus) 支持(HTTP长轮询1s内) 支持(HTTP长轮询1s内)
版本管理 支持 支持 支持
配置回滚 支持 支持 支持
灰度发布 支持 支持 不支持
权限管理 支持 支持 不支持
多集群 支持 支持 支持
多环境 支持 支持 支持
监听查询 支持 支持 支持
多语言 只支持Java 主流语言,提供了Open API 主流语言,提供了Open API
配置格式校验 不支持 支持 支持
单机读(QPS) 7(限流所致) 9000 15000
单机写(QPS) 5(限流所致) 1100 1800
3节点读(QPS) 21(限流所致) 27000 45000
3节点写(QPS) 5(限流所致) 3300 5600

Apollo 简介

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

Apollo包括服务端和客户端两个部分:

服务端:基于Spring Cloud和Spring Boot开发,打包后可以直接运行,不需要额外安装Tomcat等容器。

客户端:Java客户端不需要依赖于任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

Apollo 特性

  • 统一管理配置
    • Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
    • 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等。
    • 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。
  • 配置修改实时生效(热发布)
    • 用户在Apollo修改完配置并发布后,Apollo客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
  • 版本发布管理
    • 所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。
  • 客户端配置信息监控
    • 可以方便的看到配置在被哪些实例使用。
  • 便于集成
    • 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便应用使用。

Apollo 核心概念

从上到下属于包含关系

  1. Application应用:AppId
  2. Environment环境:Env
  3. Cluster集群:cluster
  4. namespace命名空间:namespace,一个namespace相当于一个配置文件,可以被多个服务所使用。

Apollo 三个服务

  1. Apollo Config Service:提供配置的读取、推送等功能,服务对象是 Apollo 客户端。
  2. Apollo Admin Service:提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)。
  3. Apollo Portal: Apollo 的管理界面,配置项管理,服务对象是开发者和 开放平台 API。

执行流程

img-01

  1. Apollo客户端和Apollo服务端保持长连接,从而能第一时间获得配置更新的推送
  2. Apollo客户端会定时从Apollo服务端拉取应用的最新配置
    • fallback机制,防止推送机制失效导致配置不更新
    • Apollo客户端定时拉取上报本地版本,所以一般情况下,对于定时拉取的操作,服务端会返回304-Not Modified
    • 拉取频率默认为5分钟/次,客户端可以指定
  3. Apollo客户端从Apollo服务端获取到应用的最新配置后,会保存在内存中
  4. 客户端会把从服务端获取到的配置在本地文件系统缓存一份
    • 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置
  5. 应用程序从Apollo客户端获取最新的配置、订阅配置更新通知

Apollo 安装与配置

Windows安装

  1. 下载压缩包

    下载地址,提供了三种下载方式

    img-02

  2. 解压,数据库配置

    找到文件夹下的sql文件夹,打开,在MySQL中运行

    img-03

    img-04

    数据库中运行sql文件

    img-05

  3. 修改启动配置

    修改demo.sh中的数据库连接信息

    img-06

  4. 启动
    通过git bash来启动,输入./demo.sh start即可启动

    img-07

  5. Apollo管理界面

    localhost:8070

    img-08

  6. Apollo注册中心

    localhost:8080

    img-09

  7. 注意

    配置Java的环境变量JAVA_HOME时,其路径不得包含空格,否则会找不到Java的路径。

Apollo系统管理

用户权限管理

我没用过….当时忘记写了..有机会的话…补上

多半是没机会了

参考

  1. 文档 Apollo
  2. 哔哩哔哩 Apollo分布式配置中心实战(轻松入门,快速上手
  3. 知乎 配置中心 & Apollo基本使用
-------------本文结束感谢您的阅读-------------