妙啊,美团 OCTO 分布式服务治理系统,这描述也太清晰了

OCTO 是美团千亿调用量的分布式服务通信框架及服务治理的系统,可实现服务注册、服务自动发现、服务管理、容错处理、数据可视化、服务监控报警、服务分组等。本文总结了 OCTO 架构原理、Java 应用的集成方法、以其控制台的使用。

1 概述

OCTO 是 octopus(章鱼) 的缩写。是美团公司级基础设施,为公司所有业务提供统一的高性能服务通信框架,使业务具备良好的服务运营能力,轻松实现服务注册、服务自动发现、负载均衡、容错、灰度发布、数据可视化、监控告警等功能,提升服务开放效率、可用性及服务运维效率。

【特别说明】OCTO 是美团内部专用系统,未开源,外部无法搭建该系统。 【本文意义】OCTO 是国内重量级的服务治理系统,目前调用量上千亿,通过对该系统的架构原理和使用方法的梳理,可帮助我们深化对分布式服务的认识。

1.1 在美团技术架构中的位置

 

1.2 功能特性

  • 命名服务 - 服务注册;服务自动发现
  • 服务管理 - 服务状态监测;服务启动、停止;服务负载均衡
  • 容错处理 - 实时屏蔽异常的服务,自动调配请求流量
  • 流量分发 - 灰度发布、节点动态流量分配等场景
  • 数据可视化 - 服务调用统计上报分析,提供清晰的数据图表展示,清晰了解服务间依赖关系
  • 服务分组 - 支持服务动态自动归组与不同场景下的自定义分组,解决在多机房场景下跨机房调用穿透、Sandbox等问题
  • 服务监控报警 - 支持服务与接口级别多指标、多维度的监控,支持多种报警方式
  • 统一配置管理 - 支持服务配置统一管理,灵活设置不同环境间差异,支持历史版本,配置项变更后实时下发
  • 分布式服务跟踪 - 轻松诊断服务访问慢、异常抖动等问题
  • 过载保护 - 灵活定义服务消费者的配额,当其调用量超出最大阀值时,基于不同服务消费者进行QoS区分,触发过载保护。
  • 服务访问控制

1.3 环境划分

服务提供者的环境分线上(IDC)和线下(办公云)两套系统,线下系统是对线上系统的模拟。 每套系统中都有 test/staging/prod 三个环境。

1.4 调用流程

 

  • 各方(provider/consumer)在 OCTO 上注册自己专用的 appkey,比如 appkey-provider/appkey-consumer
  • provider 在 OCTO 上注册服务(标记为 appkey-provider),同一个 appkey 在三个环境中都有部署;
  • 假设在 staging 环境 的 consumer 在 OCTO 上请求服务(标记自己 appkey-consumer,目标 appkey-provider)
  • OCTO 查询 staging 环境的 appkey-provider 的服务列表,并发送给 consumer
  • consumer 通过 mtthrift 访问 IP:PORT 服务

1.5 理解 appkey

以 Nginx 为参照来理解。 对于传统的配置方式,域名与物理服务器的映射关系由 Ngnix 维护,物理服务器的增减需要运维人员调整,无法动态完成:

 

对于 appkey 的配置方式,新增了 appkey 一层:

  • 域名与 appkey 的映射关系由 Nginx 配置,以后无需调整;
  • 而 appkey 与物理服务器的映射关系,可以动态调整。

 

Thrift 同理,对于客户端请求(appkey:port),Thrift Server 通过 appkey 找到物理服务器(IP:port)。

2 整体架构

 

 

2.1 MTransport(服务通信框架)

  MTthrift 是基于 Thrift(由 Facebook 来源为 Apache Thrift )二次开发,是一个分布式服务通讯框架ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值