zoukankan      html  css  js  c++  java
  • 【Apollo

    目录

    • Apollo 概述
      • 概述
      • 核心功能
      • 模块介绍
        • apollo-portal
        • apollo-configservice
        • apollp-adminservice
    • Apollo 下载、安装
      • GitHub 下载
      • Apollo-potal 安装
      • Apollo-configservice 安装
      • Apollo-adminservice 安装

    Apollo 概述

    概述

    Apollo 算国内开源中间件,文档完善程度最好的产品,可能唯一能够比肩的只有 Dubbo 的文档了。
    《Apollo 设计文档 —— Home》
    【芋道源码】- Apollo

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

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

    Java 客户端不依赖任何框架,能够运行于所有 Java 运行时环境,同时对 Spring/Spring Boot 环境也有额外支持。

    .Net 客户端不依赖任何框架,能够运行于所有 .Net 运行时环境。

    核心功能
    • 统一管理不同环境、不同集群的配置
    • 配置修改实时生效(热发布)
    • 版本发布管理
    • 灰度发布
    • 权限管理、发布审核、操作审计
    • 客户端配置信息监控
    • 提供 Java 和 .Net 原生客户端
    • 提供开放平台 API
    • 部署简单
    模块介绍
    • 单机部署图

    单机部署

    • Apollo-configservice: 提供配置的读取、推送等功能,服务对象是 Apollo 客户端。

    • Apollo-adminservice: 提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)。
      为什么 Config Service 和 Admin Service 分离呢?在图中,我们可以看到 Config Service 和 Admin Service 读取的是相同的 ApolloPortalDB 数据库,理论上来说可以做成一个服务。

    不过 Admin Service 因为需要不断开发 API 接口提供给 Apollo Portal,因此可能会不定期重启。而 Config Service 功能比较单纯,基本不会有太多更新,因此基本不太会重启。所以,将 Admin Service 和 Config Service 拆分成两个服务。

    • Apollo-portal : Apollo 的管理界面,进行配置想丢该,服务对象是开发者和 开放平台 API。
      为什么 Admin Service 和 Portal 分离呢?在 Apollo 的设计中,不同的 DEV、FAT、UAT、PROD 环境,会部署在不同的网络环境下,进行隔离。

    因此,每个环境会部署一套 Admin Service + Config Service。而 Portal 通过调用不同环境部署的 Admin Service 提供的 API 接口,进行不同环境的配置管理。

    另外,权限管理、开放平台 API 都是由 Portal 统一实现来提供的。

    Apollo 下载、安装

    • GitHub 下载

    • GitHub 下载缓慢解决方案

      • 解析GitHub域名IP【域名解析站点】
      • 域名包括(github.com、github.global.ssl.fastly.net、codeload.github.com、raw.githubusercontent.com)
      • 将GitHub相关IP写入到 /etc/hosts
      • 重启网络 /etc/init.d/network restart
    • 下载、安装

      # 创建目录
      $ mkdir -p /vision/workspace/apollo
      $ cd /vision/workspace/apollo
      
      # 下载
      $ wget https://github.com/ctripcorp/apollo/releases/download/v1.5.0/apollo-portal-1.5.0-github.zip
      $ wget https://github.com/ctripcorp/apollo/releases/download/v1.5.0/apollo-adminservice-1.5.0-github.zip
      $ wget https://github.com/ctripcorp/apollo/releases/download/v1.5.0/apollo-configservice-1.5.0-github.zip
      $ wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/sql/apolloportaldb.sql
      $ wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/sql/apolloconfigdb.sql
      
      # 解压apollo-portal
      $ unzip apollo-portal-1.5.0-github.zip -d apollo-portal
      # 解压apollo-adminservice
      $ unzip apollo-adminservice-1.5.0-github.zip -d apollo-adminservice
      # 解压apollo-configservice
      $ unzip apollo-configservice-1.5.0-github.zip -d apollo-configservice
      
      # 建立软链接(非必须, 习惯而已)
      $ mkdir -p /vision/soft
      $ cd /vision/soft
      $ ln -s /vision/workspace/apollo/apollo-portal apollo-portal
      $ ln -s /vision/workspace/apollo/apollo-adminservice apollo-adminservice
      $ ln -s /vision/workspace/apollo/apollo-configservice apollo-configservice
      
      # 初始化数据库
      $ mysql -uroot -p
      $ mysql> source /vision/workspace/apollo/apollo-portal-init-db.sql
      $ mysql> source /vision/workspace/apollo/apollo-config-init-db.sql
      
      • Apollo-portal 启动

        • 修改数据库连接 vi /vision/soft/apollo-portal/config/application-github.properties 注意数据库是ApolloPortalDB

        • 修改Apollo环境 vi /vision/soft/apollo-portal/config/apollo-env.propertiesdev_meta修改为 http://localhost:8080

        • 启动Apollo-portal sh /vision/soft/apollo-portal/scripts/startup.sh

        • 访问Portal服务 http://localhost:8070 帐户密码: apollo/admin

      • Apollo-configservice启动

        • 修改数据库连接 vi /vision/soft/apollo-configservice/config/application-github.properties 注意数据库是ApolloConfigDB
        • 启动Apollo-configservice服务 sh /vision/soft/apollo-configservice/scripts/startup.sh
        • 访问configservice(Meta Service) 服务 http://localhost:8080已经注册到eureka
      • Apollo-adminservice启动

        • 修改数据库连接 vi /vision/soft/apollo-adminservice/config/application-github.properties 注意数据库是ApolloConfigDB
        • 启动Apollo-adminservice服务 sh /vision/soft/apollo-adminservice/scripts/startup.sh
        • 访问configservice(Meta Service) 服务 http://localhost:8080已经注册到eureka
  • 相关阅读:
    CF1394A Boboniu Chats with Du 题解
    P3377 【模板】左偏树(可并堆)题解
    P2152 [SDOI2009]SuperGCD 题解
    在其他模块中调用代码
    教程:创建Go模块
    Go入门
    反悔贪心
    codeforces 1569 E. Playoff Restoration (meet-in-the-middle)
    codeforces 1036 F. Relatively Prime Powers (容斥+精度处理+大数边界处理)
    icpc沈阳2020 H. The Boomsday Project (dp+二分)
  • 原文地址:https://www.cnblogs.com/vision82/p/12925902.html
Copyright © 2011-2022 走看看