2月5-7日QCon全球软件开发大会携手100+位大咖讲师落定北京,点击查看完整日程>> 了解详情
写点什么

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:413491

评论

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

react源码中的生命周期和事件系统

flyzz177

React

软件测试 | 测试开发 | 一文搞定 Appium 环境配置

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

测试

使用less/css 动态的切换主题色实现换肤功能

默默的成长

前端 Vue 3 10月月更

页面中元素的锚点定位

默默的成长

前端 Vue 3 10月月更

【LeetCode】 LRU 缓存机制Java题解

Albert

算法 LeetCode 10月月更

部署 SAP UI5 应用到 SAP BTP 时遇到的 fiori not found 错误消息

Jerry Wang

JavaScript 前端开发 Fiori SAP UI5 10月月更

pyside6 qml TableView列表 用QSortFilterProxyModel模糊查询

Mr_No爱学习

NFT链游系统开发丨Alien Worlds异形世界链游系统开发成熟技术(Demo)

I8O28578624

从零到一手写迷你版Vue

helloworld1024fd

JavaScript

从react源码看hooks的原理

flyzz177

React

CEF | VS2017+Qt5.14.2+cef 实现基于CEF框架的客户端

YOLO.

qt 10月月更 C++

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

一步步实现React-Hooks核心原理

helloworld1024fd

JavaScript

页面中元素的吸顶

默默的成长

前端 Vue 3 10月月更

软件测试 | 测试开发 | Cypress 强大全新的 Web UI 测试框架应用尝鲜

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

测试

华为云从入门到实战 | 云容器服务

TiAmo

华为 华为云 云开发 10月月更

深入react源码看setState究竟做了什么?

flyzz177

React

DTT第7期直播回顾 | 低代码应用构建流程和适用场景,与你想的一样吗?

华为云开发者联盟

云计算 低代码 华为云 企业号十月 PK 榜

虚拟蜜罐:从信息模拟到实现虚拟蜜罐技术

郑州埃文科技

Linux IP地址 蜜罐

《SREWorks 云原生数智运维工程实践》电子书重磅来袭!(免费下载)

阿里云大数据AI技术

大数据 运维 云原生 电子书 企业号十月PK榜

深入浅出防抖与节流函数

CoderBin

JavaScript 面试 前端 防抖节流 10月月更

2022昇腾AI创新大赛16地区域决赛圆满落幕 32支队伍角逐全国冠军

Geek_2d6073

在一个公司死磕了5-10年的程序员,最后都哪里去了?

源字节1号

美团前端手写面试题总结

helloworld1024fd

JavaScript

SparkSQL on K8s 在网易传媒的落地实践

网易数帆

大数据 spark Kubernetes Kyuubi 企业号十月 PK 榜

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