不可靠世界的事件溯源
极客时间编辑部
讲述:丁婵大小:1.06M时长:02:19
在最近举行的 2017 伦敦µCon 大会上,Wipro Digital 的平台工程师洛伦佐·尼科拉(Lorenzo Nicora)分享了他关于不可靠世界的事件溯源的观点。
尼科拉指出,事件溯源系统的例子通常来自像电子商务这样的领域,这些领域生成事件的指令输入是面向过程的,但有些领域是没有过程的,属于人们搜集外部事件的领域,通常涵盖物流运输领域、物联网领域以及依赖于不可靠网络、可能会暂时性中断的移动 App 领域。
这些领域的事件源本身就不可靠,传输也不可靠。在这些不可靠的领域,事件可能会丢失或无序地到达。
在尼科拉看来,开发者只需要在事件到达的时候将它们搜集起来,然后试着画出一个好理解的外部世界图。从本质上讲,开发者们必须放弃在面向过程的领域中所看到的命令和事件之间的区别,并开始接收所有传入的事件,同时尽可能快地验证存储它们,然后应用逻辑来建立读取模型。
尼科拉称这种方法为“先快速写入,然后思考(Write Fast, Think Later)”。
在这种场景中,事件的验证主要是安全检查,以防止系统出现伪造或恶意的事件,而这个验证是完全无状态的。 因此,事件的验证和存储可以并行运行,这从可伸缩性的角度来看是很棒的。通过使用微服务架构,单独的服务可以处理事件的写入,构建读取模型并提供查询服务,提供了一种很好的可伸缩的解决方案。
在这些不可靠的领域存储所有事件有以下几个优点:
如果事件延迟或者无序到达的话,重新排序事件。
预测丢失的事件。
如果发现模型中有不一致的地方或者收到了延迟事件的话,重构读取模型。
延迟读取模型,让事件有时间到达。
尼科拉最后指出,如果开发者在一个不可靠的世界中做事件溯源,同时又需要很高的可伸缩性,那么这个弱写一致性模型可能是一个很好的选择。 他强调说,在使用这个模型的时候,没必要确保事件写入的一致性,相反地,开发者应该专注于构建一致的读取模型。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论