写点什么

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

评论

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

HBase深度历险

京东科技开发者

智能简历筛选系统:AIP打造高效招聘新纪元

大东(AIP智能体运营专员)

人工智能

CST软件如何计算天线系数Antenna Factor-达索官方授权

思茂信息

cst cst操作 CST软件

CorelDRAW 2024:引领设计新纪元,探索无限创意可能

Rose

面向法律场景的大模型RAG检索增强解决方案

阿里云大数据AI技术

人工智能 阿里云 LLM rag PAI

AI智能体在自动化测试中的应用

测试人

质变科技 AI-ready Data Cloud:元数据和事务系统的技术难题和关键设计

AI数据云Relyt

Serverless 元数据 snowflake 云原生数据仓库

从AI生成内容到虚拟现实:娱乐体验的新边界

天津汇柏科技有限公司

增强现实 VR虚拟现实 AI 人工智能

深入了解淘宝天猫API接口:商品详情与关键词搜索商品列表的实用指南

代码忍者

淘宝API接口

正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案

SelectDB

数据库 数据分析 部署 Kubernetes Serverless 容器化部署

高效简洁的Markdown编辑器 MarkEdit for mac激活版

Rose

探索基于大语言模型的多智能体系统:AIP智能体平台引领新纪元

大东(AIP智能体运营专员)

人工智能

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(4)

HarmonyOS SDK

harmoyos

没想到学会这个 canvas 库,竟然做这么多项目

秦少卫

Fabric.js 开源图片编辑器 开源vue图片编辑器 商品定制工具 服装设计工具

记录一次RPC服务有损上线的分析过程

京东科技开发者

DNS故障是怎么回事?DNS故障怎么解决?

国科云

音视频编解码的开发框架

北京木奇移动技术有限公司

音视频开发 音视频引擎 软件外包公司

版面分析技术研究方向:真实世界中更丰富的版面布局

合合技术团队

人工智能 AI 数据集 Transformer

音视频编解码开发的技术难点

北京木奇移动技术有限公司

音视频开发 音视频引擎 软件外包公司

反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理

京东科技开发者

故障测试与性能测试交叉实践

FunTester

破局铜加工生产管理困境:MES系统引领智能化转型

万界星空科技

制造业 mes 万界星空科技 铜管加工行业mes 铜加工行业

VMware ESXi 8.0U3c macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

sysin

esxi

AIP智能体平台:开启AI技术的新篇章

大东(AIP智能体运营专员)

人工智能

【GreatSQL优化器-11】finalize_table_conditions

GreatSQL

哈啰:构建智能出行RAG,ES还是向量数据库?

Zilliz

Milvus 向量数据库 rag 哈啰 zilliz cloud

基于云主机搭建Termgraph绘图工具,将数据转化为可视化图形

华为云开发者联盟

Python 云主机 鲲鹏 ECS 华为开发者空间

向量数据库如何助力Text2SQL处理高基数类别数据

Zilliz

text2sql Zilli Cloud Waii 高基数类别数据

Microsoft OneNote 2024 for Mac 汉化破解版 附永久许可证

Rose

三大智能体平台对比分析:FastGPT、Dify、Coze 哪个更适合你?

测试人

软件测试

2025-01-15:执行操作可获得的最大总奖励 Ⅰ。用go语言,给定一个整数数组 rewardValues,其中包含 n 个代表奖励值的数字。 你开始时的总奖励 x 为 0,并且所有下标都是未标记状

福大大架构师每日一题

福大大架构师每日一题

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