博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eBay通过事件溯源实现持续交付
阅读量:7155 次
发布时间:2019-06-29

本文共 1085 字,大约阅读时间需要 3 分钟。

eBay的持续交付团队通过使用的方法构建了一个可以持续交付的编配器,具备故障弹性和伸缩性,以便处理eBay构建管道中不断增加的负载。John Long和Nataraj Sundar在两篇博文中描述了以及。

\\

Long和Sundar都是eBay的员工,他们指出,事件溯源背后的想法在很多领域已经存在了很长一段时间。例如,在金融会计中,每个条目都以不可变的方式记录下来,并且通过相加所有相关条目来计算当前余额。当发生错误时,追加新的补偿条目,而不是擦除错误的条目。他们认为,事件溯源与开发管道中的代码进度有着天然的相识点。

\\

企业持续交付(ECD)实现了事件溯源。这是一个编配器,用于协调、定义和观察部署管道,并被用在许多内部系统中。部署管道通过拉取请求、构建、测试和部署的方式来移动代码。管道执行服务(PES)是ECD的一个组件,一种运行和跟踪管道的服务,它负责将状态报告给GitHub。这个组件使用Scala开发,并使用了框架。

\\

除了事件溯源的一般性好处之外,Long和Sundar还指出了他们在PES中使用事件溯源的三个主要原因:

\\
  • 并发。在过去,同时从管道的不同部分收到的事件之间具有竟态条件,而以串行的方式处理每个事件可以更轻松地解决并发问题。\
  • 调试和可追溯性。由于他们是个小团队,同时要支持许多管道,因此能够快速找到故障原因并修复它们对他们来说至关重要。\
  • 清晰度和正确性。编配对于公司来说至关重要,并且可能会变得非常复杂,因此他们需要高质量和简单且易于理解的代码库。将代码拆分成几个部分,记录传入的信息,计算最终模型并对模型变化做出反应,这种方式可以帮助他们实现上述的目的。\

选择事件溯源最大的原因是最后一点——清晰度和正确性。Long和Sundar认为,对于涉及时间和状态的复杂系统,事件溯源是可行的解决方案。通过精心设计的模型,可以分别处理流程中的不同部分,从而使流程更易于理解。他们介绍了事件溯源的四个组件,每个组件都很容易理解,也很容易进行修改和测试。

\\
  • 验证传入事件,根据需要创建和存储相关内部事件。\
  • 按事件插入的顺序处理事件,并进行适当的视图模型更新。\
  • 在处理完事件之后持久化视图,这样在进行查询时就不需要加载和重放所有事件。\
  • 根据状态变更做出响应,并在读取模型发生更新时决定该做些什么,然后启动新actor来执行操作。\

到目前为止,他们的系统已经处理了超过220万个事件,生成了大约200,000个运行视图。Long和Sundar表示,事件溯源架构对于实现兼容和直观的解决方案来说至关重要。

\\

查看英文原文

转载地址:http://bcogl.baihongyu.com/

你可能感兴趣的文章
个人知识管理工具 PinPKM
查看>>
GlusterFS分布式文件系统的使用
查看>>
[数据结构]之递归
查看>>
es6 Proxy对象详解
查看>>
设计一个精致按钮
查看>>
为IE8添加EventListener系列方法支持
查看>>
数据库基本语法
查看>>
环境监测小助手V1.1的Windows版
查看>>
bzoj1046(HAOI2007)上升序列
查看>>
bzoj 1898 [Zjoi2005]Swamp 沼泽鳄鱼——矩阵快速幂
查看>>
js获取本机内网IP地址和MAC地址
查看>>
7. Reverse Integer
查看>>
MySql错误处理(三)- 错误处理的例子
查看>>
Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解
查看>>
Linux多线程Pthread学习小结
查看>>
JVM性能调优入门
查看>>
关于BMP
查看>>
UML视频
查看>>
Jmeter性能测试 入门
查看>>
jmeter实现Http接口测试介绍
查看>>