AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

评论

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

Deutsch-Jozsa Algorithm

Si Yuan

量子计算

成年人除了工作以外,在社会上还要争取什么?

DaemonStone

管理 技术人生 职业发展 人生选择

架构实战 - 模块六

唐敏

「架构实战营」

Prometheus Exporter (二十三)Slurm Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Slurm

区块链,开启智慧养老新时代

CECBC

聊聊SpringBoot中的两种占位符:@*@ 和 ${*}

xiaoxi666

maven springboot

Flexagile 弹性敏捷 - 理论篇

RingCentral铃盛

Flexagile

电商系统微服务架构设计

天天向上

架构实战营

我们需要一个React框架吗?

RingCentral铃盛

React 框架 分布式应用框架

Flexagile 弹性敏捷 - 文化篇

RingCentral铃盛

Android C++系列:Linux网络(四)TCP详解

轻口味

c++ android 28天写作 12月日更

Go+ HTTP 客户端教程(5.1)

liuzhen007

28天写作 12月日更

Musical.ly 创始人:演化成就伟大的产品

石云升

28天写作 产品创新 12月日更 产品演化

当诗人遇到熟读2600亿中文参数的大模型

脑极体

预付式消费不安全怎么办?区块链技术来了

CECBC

Linux之cd命令

入门小站

目录

HHL Algorithm

Si Yuan

量子计算

Flexagile 弹性敏捷 - 实践篇

RingCentral铃盛

实用机器学习笔记十:机器学习模型

打工人!

AI 算法 学习笔记 机器学习算法 12月日更

误删服务器/tmp下的文件之后引发的问题

熊斌

解决方案

在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法【Flutter专题21】

坚果

flutter 28天写作 12月日更

图解 Volatile 原理三

悟空聊架构

volatile 28天写作 悟空聊架构 12月日更 嗅探

在线JSON转Go Bson工具

入门小站

工具

CSS之选择器(三)

Augus

CSS 12月日更

Quantum Mechanics Is Different

Si Yuan

量子计算

WebP,淘宝都在用的图片优化方法

CRMEB

回家

Tiger

28天写作

Gbase8a MPP Cluster 集群管理

南渡北归

gbase8a gbase8a集群管理 gcadmin

通过接口百度网盘下载文件

为自己带盐

28天写作 百度网盘 12月日更

2021,自动驾驶的“五代十国”

脑极体

41 K8S之网络策略

穿过生命散发芬芳

k8s 28天写作 12月日更

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