产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

评论

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

使用 JavaScript 脚本来进行复杂的查询改写

极限实验室

Java JavaScript

计算机视觉和滤帧技术

鲸品堂

计算机视觉 图像 企业号 7 月 PK 榜

亚信科技荣任「DBL电信行业工作组」副组长单位,AntDB数据库连年入选《中国数据库产品图谱》

亚信AntDB数据库

AntDB 数据库· AntDB数据库 企业号 7 月 PK 榜

Debian11系统编译安装Memcached教程。

百度搜索:蓝易云

memcached 云计算 Linux 运维 Debian

Debian11系统编译安装Pure-Ftpd教程。

百度搜索:蓝易云

云计算 Linux 运维 Debian Pure-FTPd

ChatGPT助力DevOps的优势与局限

互联网工科生

DevOps 自动化运维 ChatGPT

认识高性能服务治理框架 Kmesh

openEuler

Linux 开源 操作系统 openEuler 服务网格

国赛线下开赛!全国智能车百度智慧交通创意组区域赛今日正式拉开帷幕!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

用ChatGPT挣钱的五种思路

高端章鱼哥

机器人 零售行业 ChatGPT

高性能网络设计秘笈:深入剖析Linux网络IO与epoll

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

抓住风向“猪”持续飞,还是维持在风向的高度上?

Bonaparte

产品 产品经理 产品需求 产品培训

TDengine 的查询性能与老牌时序数据库相比如何?来看看

爱倒腾的程序员

数据库

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

字节跳动数据平台

大数据 数据中台 数据研发

Debian11系统编译安装Tomcat教程。

百度搜索:蓝易云

云计算 tomcat Linux 运维 Debian

直播回顾|用户增长之路,如何兼具体验和点击率?

HarmonyOS SDK

HMS Core

ChatGPT的探索与实践-业务应用篇 | 京东云技术团队

京东科技开发者

人工智能 ChatGPT 企业号 7 月 PK 榜

云原生网关如何实现安全防护能力

阿里巴巴云原生

阿里云 云原生 网关

Debian11系统编译安装phpMyAdmin教程。

百度搜索:蓝易云

云计算 Linux 运维 Debian phpMyAdmin

华为云CodeArts Check代码检查新手操作指南

华为云PaaS服务小智

云计算 代码规范 华为云 代码检查

再获肯定!柏睿数据通过国家级专精特新“小巨人”企业复核

新消费日报

QCN9274+QCN9074 chip: efficient and stable Wi-Fi 6 solution

wifi6-yiyi

wifi6 WiFi7

直播软件源码开发搭建提高安全性方案——山东布谷科技创作

山东布谷科技

源码 软件 软件开发 直播 源码搭建

3D云渲染的优点和缺点是什么?

Finovy Cloud

直播解锁 Serverless 新进展,与 AIGC 结合有什么搞头?

阿里巴巴云原生

阿里云 Serverless 云原生 AIGC

Debian11系统编译安装Apache教程。

百度搜索:蓝易云

Apache Linux 运维 云服务器 Debian

百度 APP iOS 端包体积 50M 优化实践 (四) 代码优化

百度Geek说

ios 代码优化 企业号 7 月 PK 榜

代码随想录Day20 - 二叉树(六)

jjn0703

Debian11系统编译安装Docker教程。

百度搜索:蓝易云

Docker 云计算 Linux 运维 Debian

自动化接口回归测试神器 AREX 使用初体验

AREX 中文社区

自动化测试 AWS 流量回放

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