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

本文共 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://womko.baihongyu.com/

你可能感兴趣的文章
js滚动加载到底部
查看>>
memcache数据库和redis数据库的区别(理论)
查看>>
我的友情链接
查看>>
第三十九天
查看>>
Redis详解
查看>>
论程序员加班的害处
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
再次更新
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
开篇,博客的申请理由
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
centos 7 部署LDAP服务
查看>>
iOS项目分层
查看>>
IntelliJ IDEA 注册码
查看>>
String字符串的截取
查看>>
DynamoDB Local for Desktop Development
查看>>
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
理解Javascript参数中的arguments对象
查看>>