AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

LinkedIn 开源 Iris 消息处理器,速度比旧系统快 86.6 倍

  • 2023-09-19
    北京
  • 本文字数:2822 字

    阅读完需:约 9 分钟

大小:1.50M时长:08:44
LinkedIn开源Iris消息处理器,速度比旧系统快86.6倍

LinkedIn开源“Iris消息处理器”,该服务被用于增强其现有 Iris 事件升级管理系统(Escalation Management System)的性能和可靠性。iris-message-processor 的处理速度有了显著提升,相比之前的处理器,在平均负载下速度快 4.6 倍,在高负载下速度快 86.6 倍。


“iris-message-processor”是之前的 iris-sender 的分布式替代方案,支持更高的并发处理和直接将消息发送给目标供应商。它可以进行水平伸缩,并且不使用数据库作为消息队列,因而减少了对数据库的依赖。


iris-message-processor 可以处理大量的事件,经测试,它可以在不到 10 秒的时间内处理 6000 个事件,与之前的系统需要 30 分钟相比,进步巨大。即使在同时减少 50%节点的情况下,新处理器也保持了高效的处理速度,可以在不到 30 秒的时间内完成集群再均衡,并在不到 3 秒的时间内处理升级事件,即使是在高于平均负载的情况下。


为了提升性能,LinkedIn 将 Iris 升级事件拆分为桶,动态分配给 Iris 消息处理器集群中的不同节点,改进了并发处理和直接发送消息的能力。Iris 进行了重新设计,以应对未来“10 倍”流量增长,避免在未来因需求增加时才匆忙进行改造。



_新 Iris 系统的架构(来源)_


新服务是用Go开发的。它不使用数据库作为消息队列,从而减轻了现有数据库系统的压力。新系统可以使用最终一致性数据库来存储结果消息进行审计跟踪,从而增强了可伸缩性。


LinkedIn 已经使用 iris-message-processor 大约一年时间都没有发生中断,并始终保持每毫秒处理 1000 条消息的 SLO。作为 iris-sender 的替代方案,iris-message-processor 不仅保留了现有的 Iris API,同时还提供了实质性的性能改进。


LinekedIn 的工程师采用了各种措施来确保上线期间的稳定性,包括保持向后兼容性和进行增量式验证和测试。


LinekedIn 已将Iris -message-processor开源,代码可在IrisOncall代码库中找到。这个工具可以在 LinkedIn 的环境之外运行,可以完全取代其他现成的事件管理系统。


InfoQ 采访了 LinkedIn 高级软件工程师Diego Cepeda,聊了聊关于 iris-message-processor 的话题,包括它的实现和开源。


InfoQ:引入 iris-message-processor 后,资源使用(CPU、内存、网络带宽)发生了什么变化,这对运营成本有怎样的影响?


Diego Cepeda:实际上,资源利用率的变化可以忽略不计。LinkedIn 的关键监控基础设施具有非常高的容错冗余水平,因为我们认为可靠的监控是可靠运营的基础。


我们的 Iris 实例分布在不同的数据中心,每个数据中心都有足够的容量来处理整个站点的警报需求。不过,因为 Iris 足够高效,我们在每个数据中心只使用了 3 个实例,每个实例只配备了 8 个核心和 32GB 内存,这些足够了。


每个数据中心有 3 个 MySQL 主机为 Iris 和 iris-message-processor 提供支持。值得注意的是,即使对于 LinkedIn 这样的规模,这样的配置也有点过剩,因为每个 iris-message-processor 实例平均使用不到 5%的 CPU 和不到 1%的内存。


InfoQ:你是否可以提供一些投资回报率(ROI)指标来证明 iris-message-processor 与其他现成解决方案在成本效益方面的差异?


Cepeda:我们没有与其他商业系统进行过比较或分析。不过,有大约 6000 名 Iris 内部用户积极待命,我们可以据此推测,使用现成的解决方案将是一笔相当大的投入。


我们确实有时间维度的比较,例如持续维护 Iris 所需的工作量,我们估计大部分时间都花在帮助我们的开发人员熟悉系统和回答问题上。


此外,我们没有专门为 Iris 投入人员资源,它只是监控基础设施团队负责处理的许多个服务中的一个。


Iris 已经为我们的整体投入带来了回报。对于选择使用 Iris 的组织来说,ROI 可能会更大,因为它们只会产生硬件和维护成本,并且可以从 Iris 的开源中受益。


InfoQ:你选择 Go 作为 iris-message-processor 的开发语言,这个决定背后的原因是什么?这个选择对系统的性能和可伸缩性有怎样的影响?


Cepeda:我们选择 Go 是因为它能够快速开发 Bug 少、高度可伸缩的并发应用程序。Go 的轻量级协程非常适合用来完成这项任务,因为管理并发任务变得很容易,避免了传统线程的复杂性。使用通道在程序之间进行通信增强了安全性和同步能力。


此外,Go 的标准库提供了并发、网络、分布式系统和测试用的包,减少了对第三方库的依赖,简化了开发。这些特性使得我们能够编写 Bug 更少的代码,支持高效的伸缩,并快速交付健壮的并发应用程序,如 iris-message-processor。


在过去的几年,我们一直在用 Go 语言逐步重写我们的大部分关键监控服务,并在开发速度、性能和可操作性方面获得显著的好处。一个典型的例子就是 iris-message-processor,它在高负载下的性能比之前的版本要好几个数量级。


InfoQ:你提到 iris-message-processor 已经在 LinkedIn 运行了大约一年时间都没有出现过中断,并且始终保持很好的 SLO。你能分享系统在高压环境下测试的例子吗?它的表现如何?


Cepeda:值得庆幸的是,LinkedIn 的系统都是相对可靠的,所以我们很少对系统进行真正的压力测试。当然,对于庞大而复杂的系统,出现故障总是不可避免的。我们曾经遇到过一个 DNS 问题导致我们的一个生产数据中心中的大部分服务(包括 iris-message-processor)无法访问时。


这是我们所见过的最接近高压的场景,数百个服务同时出现数千个警报,Iris 集群有三分之一的节点无法启动。


值得庆幸的是,我们在设计 iris-message-processor 时就考虑到了这种场景。


正如我们所计划的那样,集群可以丢弃不可达的节点,进行再均衡,并在不到 60 秒的时间内处理升级事件。以前的系统可能需要几十分钟才能完全解决这个问题,这会导致处理信息不及时,浪费了工程师发现问题和解决问题的宝贵时间。


InfoQ:随着 iris-message-processor 的开源,你希望社区可以带来怎样的特新和改进?你计划如何管理开源项目,确保它们与目标和质量标准对齐?


Cepeda:iris-message-processor 的核心思想是可伸缩性和灵活性。我们意识到这个世界上不存在两个完全相同的环境,在设计和实现中我们注意到了这一点。例如,我们目前使用 Twilio 发送语音和短消息,但其他组织可能使用不同的供应商。


我们没有对他们进行强制锁定,而是为消息供应商提供了一个可插拔的接口,任何想要集成到其他系统的组织都可以非常快速地编写出一个新的插件,并在对代码库进行最少变更的情况下启动并运行。


这种模式也体现在我们对存储系统的选择上。iris-message-processor 使用 MySQL 作为数据存储,当然也可以很容易地使用其他数据存储。所有与 MySQL 相关的代码都进行了抽象,这样就可以为不同的数据存储编写新的集成实现,而不需要修改代码的其他部分。这种设计使得拥有不同技术栈的组织更容易采用新系统。


对于已经开源的 Iris 和 Oncall 来说,项目的管理无疑是一个挑战。在这方面,我们采用基于测试驱动的开发和测试。为了确保与质量标准对齐,我们希望新的贡献代码是可测试的,除此之外,代码在被接受之前会在本地开发环境进行验证。


我们期待外部贡献者帮助我们把它变成一个更好、更容易使用的平台。


声明:本文由 InfoQ 翻译,未经许可禁止转载。


查看英文原文https://www.infoq.com/news/2023/09/linkedin-iris-message-processor/

2023-09-19 14:362596

评论

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

智慧交通的待解谜题,中科视语在首届昇腾AI创新大赛交出金奖答案

脑极体

大数据培训学习方法有哪些

小谷哥

直播预告丨泛CG元宇宙分会场云桌π—从NVIDIA XR到云渲染,如何构建元宇宙虚拟场景生态闭环

3DCAT实时渲染

CG 渲染 虚拟现实 元宇宙 元宇宙开发

从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发

NebulaGraph

图数据库 开源贡献

小游戏的前世今生

FinFish

微信小程序 休闲游戏 小游戏 H5小游戏

微服务中的鉴权该怎么做?

江南一点雨

SpringCloud Gateway openfei

前端培训学习需要什么条件?

小谷哥

艾瑞《政企数智办公平台行业研究报告》,政企数智办公「百宝书」

融云 RongCloud

办公 数智化

Smart Finance将AIGC引入GameFi,P2E进入人工智能时代

鳄鱼视界

学习web前端培训怎么样呢

小谷哥

找运营商电商化运营突破口的九个策谋

鲸品堂

12 月 PK 榜

30个编程小技巧,提高代码性能

千锋IT教育

Getaverse测试网即将上线,节点销售火爆,是否成为下一个GALA?

Geek_Web3

区块链 Web3 Daily #区块链# did web3

SoviChart数据可视化:条形图(Bar chart)

2D3D前端可视化开发

数据分析 数据可视化 可视化图表 sovitchart 条形图

笔记2022-12-06

mklop

学习笔记 构架

埃文科技完成数千万A轮融资

郑州埃文科技

网络安全 企业融资 数据服务

Gin路由添加流程

Z.K

制定数据战略的三大要素和五个步骤!

用友BIP

go实现类似spring BeanUtil工具

Z.K

微服务开发平台 Spring Cloud Blade 部署实践

北京好雨科技有限公司

Kubernetes 微服务 云原生 Spring Cloud

Smart Finance将AIGC引入GameFi,P2E进入人工智能时代

股市老人

王者荣耀商城异地多活架构设计

Jack

架构实战训练营9期

Getaverse月报 - 11月

Geek_Web3

区块链 Web3 Daily #区块链# did web3

福利Day | KaiwuDB 邀你相约 DTCC 2022,文末免费抢价值3200元大会门票!

KaiwuDB

数据库

龙磐投资,中国领先生物医药风险投资机构,规模超百亿

联营汇聚

web前端培训应该怎么做

小谷哥

海鑫科金:通过 YMatrix 实现离线在线平台统一,满足公安数据场景的管理分析需求

YMatrix 超融合数据库

超融合数据库 YMatrix 公安数据场景 海鑫科金

从SPL看开放计算能力的意义

石臻臻的杂货铺

SPL

FFA 2022 收官总结|活动报告出炉,实时即未来!

Apache Flink

大数据 flink 实时计算

学习java参加培训哪个比较好呢?

小谷哥

LinkedIn开源Iris消息处理器,速度比旧系统快86.6倍_实时计算_Eran Stiller_InfoQ精选文章