【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

美团大规模微服务通信框架及治理体系 OCTO 核心组件开源

  • 2019-08-14
  • 本文字数:2668 字

    阅读完需:约 9 分钟

美团大规模微服务通信框架及治理体系OCTO核心组件开源

微服务通信框架及治理平台 OCTO 作为美团基础架构设施的重要组成部分,目前已广泛应用于公司技术线,稳定承载上万应用、日均支撑千亿级的调用。业务基于 OCTO 提供的标准化技术方案,能够轻松实现服务注册/发现、负载均衡、容错处理、降级熔断、灰度发布、调用数据可视化等服务治理功能。


现在我们将 OCTO 的核心组件OCTO-RPCOCTO-NSOCTO-Portal开源,欢迎大家使用和共建。

背景

OCTO 项目始于 2014 年底,当时美团正处在新业务拓展期,服务数量不断增长,服务间调用拓扑日益复杂,逐渐暴露出了一些典型的问题:


  • 研发效率低:缺乏标准的服务治理框架和组件,不少团队“重复造轮子”造成资源浪费,研发质量参差不齐,系统整体可用性不高。

  • 运维成本高:缺乏完善、便捷的体系化运维手段,难以进行准确的监控告警,难以对涉及多级链路的故障快速定位。

  • 服务运营难:服务指标数据收集困难,缺乏自动化深度分析,难以满足业务快速对指标进行评估决策的要求。


针对这些痛点问题,提升研发效率和质量,降低运营成本,对于支撑业务快速稳定发展显得尤为重要。因此,基础架构团队研发了公司级统一的分布式微服务通信框架及治理平台——OCTO。OCTO 是英文单词章鱼(Octopus)的缩写,章鱼众多的触手表征 OCTO 平台能触达治理海量的服务,涵盖服务治理领域的各个部分,因此取名。自平台推出以来,在全公司各业务线被广泛进行使用,显著提升了全公司的技术研发效率与运营质量,稳定支撑着美团业务的高速发展。


有别于传统的开源服务治理组件,OCTO 提供了体系化的服务治理方案,从通信框架到注册中心、从文件配置到埋点告警、从灰度链路到数据报表,立体化的提升微服务运营能力、赋能业务。此外,奉行“策略下沉”的设计思想,OCTO 剥离传统通信框架具备的服务治理策略功能,下沉到代理组件实现,有效提升通信框架的稳定性、降低业务系统额外开销。历经海量调用验证的 OCTO,依托低耦合、模块化、单元化系统架构,能够有效满足各类复杂业务场景需求,实现异地多活等容灾目标。

功能特性

针对暴露出的问题,OCTO 围绕包括定义、开发、测试、部署、运维、优化、下线在内的服务的全生命周期,打造了一系列组件和系统,方便研发同学专注于自身业务逻辑开发的同时,又能享受完善的服务治理功能。例如,我们在开发阶段提供了高性能、高可用、功能模块化的通信框架供业务便捷使用;在测试阶段提供了 SET 化、泳道、服务分组等各种灰度策略供业务无损试错;在运维阶段提供机器级、框架级、业务级等层级分明的监控告警供业务快速定位问题;在优化阶段提供了详尽的服务指标供业务自定义分析改进。


OCTO 主要功能特性包括但不限于:


  • 命名服务:服务注册/发现。

  • 服务管理:服务状态监测;服务启动、停止;服务负载均衡。

  • 容错处理:实时屏蔽异常的服务,自动调配请求流量。

  • 流量分发:灰度发布、节点动态流量分配等场景。

  • 数据可视化:服务调用统计上报分析,提供清晰的数据图表展示,直观定位服务间依赖关系。

  • 服务分组:支持服务动态自动归组与不同场景下的自定义分组,解决在多机房场景下跨机房调用穿透、沙盒测试等问题。

  • 服务监控报警:支持服务与接口级别多指标、多维度的监控,支持多种报警方式。

  • 统一配置管理:支持服务配置统一管理,灵活设置不同环境间差异,支持历史版本,配置项变更后实时下发。

  • 分布式服务跟踪:轻松诊断服务访问慢、异常抖动等问题。

  • 过载保护:灵活定义分配给上游服务消费者的配额,当服务调用量超出最大阀值时,基于不同服务消费者进行 QoS 区分,触发流控进行过载保护。

  • 服务访问控制:支持多粒度、多阶段的鉴权方式。

OCTO 整体架构


  • OCTO-RPC(开源 Java/C++):分布式 RPC 通信框架,支持 Java、C++、Node.js 等多种语言。

  • SGAgent:部署在各服务节点,承担服务注册/发现、动态路由解析、负载均衡、配置传输、性能数据上报等功能。

  • Oceanus(待开源):HTTP 定制化路由负载器,具体可参考《Oceanus:美团 HTTP 流量定制化路由的实践》一文。

  • OCTO-NS:包括 SDK(Java/C++)、基础代理 SGAgent、命名服务缓存 NSC、健康检查服务 Scanner 等组件,提供命名服务,服务注册等信息的存储,服务状态检测的扫描等功能。

  • Watt(待开源):统计链路信息,计算服务各类指标作为监控报警依据。

  • MCC(待开源):统一配置中心,可进行服务配置的管理下发。

  • OCTO-Portal:服务注册、管理、诊断、配置、配额等功能的一站式管理平台。

OCTO 开源组件

OCTO 首批开源的核心组件包括:分布式服务通信框架(OCTO-RPC)、服务注册中心(OCTO-NS)、服务治理平台(OCTO-Portal)。未来,我们还将持续开源更多的组件与功能。

分布式服务通信框架(OCTO-RPC)

分布式服务通信框架是 OCTO 的重要组成部分,具备高性能、高可用、易扩展、易接入等特点,已覆盖美团 90%以上的服务(Java/C++),支撑每天千亿级别的调用量。目前 Java 和 C++版本已经开源,更多技术实现详见:OCTO-RPC

服务注册中心(OCTO-NS)

服务注册中心基于服务描述信息,实现服务注册/发现、配置管理、路由分组、负载均衡、健康检测等功能,搭配服务治理平台能够更便捷地进行服务节点数据的可视化运营。目前开源出来的子模块包括 SDK(Java/C++)、基础代理 SGAgent、命名服务缓存 NSC、健康检查服务 Scanner。更多技术实现详见:OCTO-NS

服务治理平台(OCTO-Portal)

服务治理的一站式平台,为服务关注方提供服务节点管理、性能数据分析、全链路跟踪诊断等服务治理核心能力。更多技术实现详见: OCTO-Portal


关于开源

在过去四年中,OCTO 是美团在架构中间件领域研发的一个重要技术项目,在复杂多元业务、大规模并发调用的场景下已被充分验证。目前 OCTO 支撑了美团大规模微服务每天千亿级的调用,接口调用成功率达到了 99.999%,是全公司 SOA、服务治理的核心基础。我们期望通过将其开源,不断反馈给社区、贡献给行业。同时,我们希望在行业优秀工程师的帮助下,OCTO 平台能得到更快地升级更新迭代。欢迎大家多提宝贵意见和建议。

未来规划

为了进一步支撑美团业务飞速发展的需求,同时对标业界先进的服务治理理念与实践,未来一段时间内,OCTO 将在以下几方面规划演进:


  1. 命名服务 AP 化:弱化强一致性,聚焦异常状态下注册中心的可用性。

  2. 框架反应式编程:RPC 框架提供反应式编程支持,帮助业务构建高性能异步无阻塞的服务。

  3. ServiceMesh:将现有命名服务等功能与控制面/数据面结合,以服务网格的思路进一步演进 OCTO 服务治理体系。


作者介绍


舒超张翔,美团 OCTO 服务治理团队研发成员。


本文转载自公众号美团技术团队(ID:meituantech)


原文链接


https://mp.weixin.qq.com/s/nEyS07BfS5rwxf-uMtrAOw


2019-08-14 08:002214

评论

发布
暂无评论
发现更多内容

用友成为铸基计划-2022标准建设贡献单位!

用友BIP

软件测试 | 测试左移代码分析

测吧(北京)科技有限公司

测试

2022 IoTDB Summit:IoTDB PMC 乔嘉林《端边云协同:Apache IoTDB 全新单机分布式架构》

Apache IoTDB

推荐这5个很牛的开源项目,程序员直呼内行

引迈信息

开源 低代码

DockQuery x 达梦 国产数据库生态“加速跑”

BinTools图尔兹

#数据库 信创产业 达梦认证

【Java优化实战】「微基准系列」带你脚踏实地的进行开发和使用JMH测试和提升应用程序和服务指南

洛神灬殇

Java JMH 3月日更 JMH性能基准测试

Matlab实现小波变换

timerring

图像处理 数字图像处理

软件测试 | Sonarqube maven分析

测吧(北京)科技有限公司

测试

软件测试 | 代码分析的持续集成应用

测吧(北京)科技有限公司

测试

软件测试 | 精准化测试

测吧(北京)科技有限公司

测试

一万年太久,只争朝夕 | Foundation model的进展仍不够快

Baihai IDP

人工智能 AI 大模型 企业号 3 月 PK 榜 Foundation Models

设计模式之美—接口隔离

GalaxyCreater

设计模式

1行Python代码,把PPT转成图片,python-office功能更新~

程序员晚枫

Python Office 自动化办公

软件测试 | Sonarqube中的覆盖率分析

测吧(北京)科技有限公司

测试

IntelliJ IDEA中提高代码开发效率的10个快捷操作

京东科技开发者

var java 企业号 3 月 PK 榜 psvm sout

软件测试 | 常见覆盖率统计工具

测吧(北京)科技有限公司

测试

阿里云函数计算助力高德 RTA 广告投放系统架构升级

Serverless Devs

Serverless 高德

软件测试 | Sonarqube架构

测吧(北京)科技有限公司

测试

某游戏公司基于OceanBase 4.0的运营分析AP实践

OceanBase 数据库

Spring进阶:定义bean时容易踩的两个坑,连老手也容易犯错

程序员拾山

spring

四步走搭建自己的专属 ChatGPT(附开源代码)| 社区征文

FN0

AI 话题广场 ChatGPT

英特尔公司高级副总裁、中国区董事长王锐: 下一个中国是中国!

科技之家

C++ 线程池

王玉川

c++ 编程语言 多线程 线程池

好用的数据校验&修复工具gt-checksum开源啦

GreatSQL

greatsql社区 gt-checksum

Docker 环境搭建

流火

Docker

5分钟部署百台云上计算机,22支参赛队伍快速接入南网电力调度AI应用大赛

云布道师

无影云电脑

GPT-3/ChatGPT复现的经验教训

OneFlow

人工智能 深度学习 GPT-3 ChatGPT

软件测试 | Sonarqube scanner使用

测吧(北京)科技有限公司

测试

2022 IoTDB Summit:长安汽车黄立《Apache IoTDB 在长安智能汽车数据平台的实践》

Apache IoTDB

三天吃透SpringMVC面试八股文

程序员大彬

Java spring springmvc

这样在 C# 使用 LongRunnigTask 是错的

newbe36524

C# Docker Kubernetes

美团大规模微服务通信框架及治理体系OCTO核心组件开源_开源_张翔_InfoQ精选文章