50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

【网络安全必备知识】本地提权漏洞分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

开源的未来:启动 Open100

开源雨林

社区 开源软件 商业化

DockQuery | 基于E-R图的数据建模功能使用实践

BinTools图尔兹

数据建模 信创 #数据库

8年服务百万客户,这家SaaS公司是懂云原生的

科技热闻

从稀疏表征出发、召回方向的前沿探索

百度Geek说

召回 预训练模型 稀疏矩阵 企业号 3 月 PK 榜

极客时间运维进阶训练营第十二周作业

Starry

一天吃透MySQL锁面试八股文

程序员大彬

MySQL 面试

VPN客户端Shimo mac版使用教程:如何创建新的 VPN 帐户?

Rose

vpn mac系统 Shimo下载 Shimo教程

Blazor在IoT领域的前端实践 @.NET开发者日

MASA技术团队

.net blazor MASA MAUI

@所有人,优秀前端都应该具备的开发好习惯

引迈信息

前端 低代码 开发

被问了n遍怎么把FB视频无水印下载到手机相册!现在双手奉上教程!

frank

facebook #Facebook

使用Assembly打包和部署Spring Boot工程

Java spring Spring Boot assembly 框架

React数字滚动组件 numbers-scroll

观纵科技

JavaScript 前端监控 React

OpenHarmony NAPI 类对象导出及其生命周期管理(下)

离北况归

OpenHarmony

OpenHarmony编译固件新增支持Ubuntu22.04平台

离北况归

OpenHarmony

Matlab常用图像处理命令108例(四)

timerring

图像处理

图解Redis,谈谈Redis的持久化,RDB快照与AOF日志

小小怪下士

Java redis 程序员 后端

Polygon马蹄链质押DApp开发合约部署案例

薇電13242772558

智能合约 dapp

企业如何构建内部开发者平台?

SEAL安全

IdP 平台工程 企业号 3 月 PK 榜 内部开发者平台

URule规则引擎

规则引擎 java

真的有那么丝滑吗?面试阿里(Java岗)从投简历到面试再到入职

Java java面试 Java八股文 Java面试题 Java面试八股文

从零开始搭建一个通用的业务技术架构,这套架构 有点牛逼!

程序知音

Java 程序员 编程语言 后端

3D摄影棚布光工具Set A Light 3D Studio

Rose

Mac软件 Set A Light 3D Studio 3D摄影棚布光工具

可插拔组件设计机制—SPI

京东科技开发者

spi Java】 JavaSPI 企业号 3 月 PK 榜

OpenHarmony内核学习[1]--单独编译OpenHarmony标准系统内核

离北况归

OpenHarmony

如何规避MyBatis使用过程中带来的全表更新风险

京东科技开发者

数据库 mybatis 代码 代码规范 企业号 3 月 PK 榜

PyTorch深度学习实战 | 深度学习框架(PyTorch)

TiAmo

深度学习 PyTorch

科技助力金融转型 阿里云联合中国信通院在京举办未来金融思享会

阿里云云效

DevOps 数字化转型 金融 BizDevOps 业技融合

京东小程序CI工具实践

京东科技开发者

小程序 ci 开发 代码 企业号 3 月 PK 榜

非侵入式入侵 —— Web缓存污染与请求走私

vivo互联网技术

CDN

NineData x 阿里云 正式上线

NineData

数据库 阿里云 数据迁移 数据管理 NineData

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