写点什么

eBay 如何提高通知平台的可靠性

  • 2023-01-17
    北京
  • 本文字数:856 字

    阅读完需:约 3 分钟

eBay如何提高通知平台的可靠性

eBay 工程师一直在使用故障注入技术来提高通知平台的可靠性,并探索其弱点。虽然故障注入是一种常见的行业实践,但 eBay 尝试了一种利用插装将故障注入引入到应用程序层的新方法。

 

该平台负责向第三方应用程序推送平台通知,以提供商品价格、商品库存状态、支付状态等方面的最新变化。它是一个高度分布式和大规模的系统,有许多外部依赖,包括分布式存储、消息队列、推送通知端点等。

 

eBay 工程师 Wei Chen 表示,通常情况下,故障注入是在基础设施层进行的,例如,通过服务器断开连接或超时,或使给定资源暂时不可用,引入 HTTP 错误,从而导致网络故障。这种方法代价高昂,并且对系统的其他部分有许多影响,因此很难单独探索故障的影响。

 

但这并不是唯一可行的方法。相反,可以在应用程序层创建故障,例如,在 HTTP 客户端库中添加特定的延迟以模拟超时。

 

我们对依赖服务的客户端库的类文件进行了插装,以引入我们定义的不同类型的故障。当我们的服务通过插装 API 与底层资源通信时,将会引发引入故障。由于更改了代码,这些故障并没有真正发生在我们的依赖服务中,其效果是模拟的,使我们能够在没有风险的情况下进行实验。

 

三是 eBay 实现的强制调用方法显示错误行为的基本工具:阻塞或中断方法逻辑,例如抛出异常;更改方法的状态,例如更改 response.getStatusCode() 的返回值;以及替换方法参数的值,包括修改发送给方法的参数值。

 

为了实现上述三种类型的插装,我们创建了一个 Java 代理。在代理中,我们实现了一个 classloader ,它将插装应用程序代码中使用方法的代码。我们还创建了一个注解来指示将插装哪个方法,并将插装逻辑放在注解的方法中。

 

此外,eBay 工程师还实现了一个配置管理系统,以动态更改故障注入在运行时的行为。特别是,对于 eBay 应用程序支持的每个端点,工程师可以更改一些参数来测试特定的行为。

 

据 Chen 介绍,eBay 是业界首个使用代码插装在应用程序层实施故障注入的组织。如果你对这种方法感兴趣,请不要错过原文中提供的完整说明。

 

原文链接:

https://www.infoq.com/news/2022/12/eBay-fault-injection-instrument/

2023-01-17 09:416201

评论

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

从故障演练到运维工具产品力评测的探索 | 龙蜥技术

OpenAnolis小助手

开源 操作系统 系统运维 龙蜥社区

网站的静态资源怎么获取?

不在线第一只蜗牛

网站 静态资源

小型企业网络优化加速方案

Ogcloud

网络 SD-WAN 企业组网 企业网络 SD-WAN组网

提升Office 365网络效率的SD-WAN技术

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

新特性、新平台、新功能!Anolis OS 8.9 版本正式发布

OpenAnolis小助手

操作系统 龙蜥社区 龙蜥操作系统

天花板!充值运营平台限时返场!

开源物联卡管理平台-设备管理

物联网 IoT eSIM安全 java 技术提升

克魔助手抓包工具完整教程

盘点 | 2024 年最值得关注的十大 ETL 数据集成工具

tapdata

Tapdata 数据集成平台 etl工具都有哪些 数据etl工具

ClkLog自定义事件分析登场

ClkLog

数据分析 埋点 开源软件

比特币减半倒计时:NFT 生态将受到怎样的影响?

NFT Research

BTC NFT

ETLCloud中数据源使用和管理的技巧

谷云科技RestCloud

MySQL 数据库 ETL 数据源 数据源管理

明天!龙蜥在 2024 OceanBase 开发者大会上等你

OpenAnolis小助手

操作系统 oceanbase 龙蜥社区

面向 AI 软件栈的优先设计 龙蜥社区 AI 生态建设介绍

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区 龙蜥操作系统

百度文库「一站式AI内容创作平台」再上新!重磅发布「跨模态AI漫画及画本生产能力」

极客天地

APM 应用诊断系列(二):定位资源池问题

腾讯云可观测平台

欢迎「北辰使者」!首发队伍已集结,Milvus 社区力量持续壮大!

Zilliz

开源社区 Milvus Zilliz 北极星计划

Valkey开源社区再添新成员!阿里云与Redis核心贡献者再聚首

阿里云瑶池数据库

数据库 redis 阿里云 开源社区

eBay如何提高通知平台的可靠性_安全_Sergio De Simone_InfoQ精选文章