1、Apollo基本介绍

1、What is Apollo
(1)背景
          对程序配置的期望值越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制等;
          在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求,Apollo配置中心应运而生。

(2)Apollo简介
          Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

(3)Apollo支持4个维度管理Key-Value格式的配置
          application (应用)
          environment (环境)
          cluster (集群)
          namespace (命名空间)

(4)配置基本概念,Apollo定位于配置中心,按照理解,配置有以下几个属性
# 配置是独立于程序的只读变量
          application配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。
          application其次,配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置。
          application常见的配置有:DB Connection Str、Thread Pool Size、Buffer Size、Request Timeout、Feature Switch、Server Urls等

# 配置伴随应用的整个生命周期
          application配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。

# 配置可以有多种加载方式
          配置也有很多种加载方式,常见的有程序内部hard code,配置文件,环境变量,启动参数,基于数据库等。

# 配置需要治理,权限控制
          由于配置能改变程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制。

# 不同环境、集群配置管理
          同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理。

# 框架类组件配置管理
          还有一类比较特殊的配置 - 框架类组件配置,比如CAT客户端的配置。
          虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分。
          这类组件对应的配置也需要有比较完善的管理方式。



2、Why Apollo
          正是基于配置的特殊性,所以Apollo从设计之初就立志于成为一个有治理能力的配置发布平台,目前提供了以下的特性:
(1)配置修改实时生效(热发布)
          修改并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。

(2)统一管理不同环境、不同集群的配置

(3)版本发布管理
          application所有的配置发布都有版本概念,从而可以方便地支持配置的回滚。

(4)以开源模式开发的,对java、集成spring支持较好

(5)部署简单
          配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少;
          目前唯一的外部依赖是MySql,所以部署非常简单,只要安装号Java与MySql就可以让Apollo跑起来;
          Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数。



3、官网
          https://github.com/ctripcorp/apollo



4、apollo模块及其主要功能
(1)ConfigService
          提供配置获取接口;
          提供配置推送接口;
          服务于Apollo客户端;

(2)AdminService
          为应用获取配置,支持实时更新;
          通过MetaServer获取ConfigService的服务列表;
          使用客户端软负载SLB方式调用ConfigService;

(3)Client
          提供配置获取接口;
          提供配置推送接口;
          服务于Apollo客户端;

(4)Portal
          配置管理界面;
          通过MetaServer获取AdminService的服务列表;
          使用客户端软负载SLB方式调用AdminService;

(5)Eureka
          用于服务发现和注册;

(6)MetaServer
          Portal通过域名访问MetaServer获取AdminService的地址列表;
          Client通过域名访问MetaServer获取ConfigService的地址列表;

(7)NginxLB
          和域名系统配合,协助Portal访问MetaServer获取AdminService地址列表;
          和域名系统配合,协助Client访问MetaServer获取ConfigService地址列表;
          和域名系统配合,协助用户访问Portal进行配置管理;

(8)图解
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apollo是一个自动驾驶系统,它包含了多个模块,其中控制模块是其中之一。控制模块负责根据感知和规划模块的输出,生成车辆的控制指令,以实现自动驾驶车辆的运动控制。\[1\] 在Apollo的决策规划算法中,凸优化和Frenet坐标系是其中的重要概念。凸优化是一种数学优化方法,用于求解凸结构的问题。Frenet坐标系是一种车辆运动轨迹描述的坐标系,它可以将车辆的位置和方向表示为曲线上的参数。这些概念在决策规划中起到了重要的作用。\[2\] 在求解非凸问题时,Apollo使用启发式算法来寻找非凸问题中的凸结构。启发式算法通过在空间中随机采样一些离散的数值,并取最小值作为迭代初值,来求解最终解。然而,采样点的数量选择很重要,过少的采样点容易陷入局部最优解,而过多的采样点会增加计算量。因此,选择合适的采样点数量是一个关键的问题。\[3\] 综上所述,Apollo是一个自动驾驶系统,其中的控制模块使用凸优化和Frenet坐标系来实现车辆的运动控制。在决策规划中,Apollo使用启发式算法来求解非凸问题,并通过选择合适的采样点数量来获得最优解。 #### 引用[.reference_title] - *1* [Apollo控制模块:Apollo控制模块基础及控制算法介绍。](https://blog.csdn.net/qq_41667348/article/details/122288404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Apollo决策规划算法学习Chapter1 基本概念](https://blog.csdn.net/weixin_44924725/article/details/131350245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉忠昱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值