Autodesk基于Mesos和Kafka的通用事件系统架构
本文讲的是Autodesk基于Mesos和Kafka的通用事件系统架构, 【编者的话】我非常喜欢这篇博客,因为它揭示了许多简单架构模块—例如:Mesos、Kafka、RabbitMQ、Akka、Splunk、Librato和EC2可以整合起来来解决实际问题。而且一个小团队就可以获得非常令人惊讶的成就。 几个月前我被分配一个新任务,要求拿出一个集中事件系统的解决方案,这个系统可以允许各种后端彼此通讯。这些后端包括动态消息、渲染、数据转换、BIM、身份验证、日志报告、分析等等后端应用。这应该是一个可以适配多种应用、使用场景与可扩展配置文件的通用系统。当然,这个系统还应该有易用的接口,以及动态扩展性。 显然我不可能有时间写很多代码。因为Kafka可以动态扩展,在业内被广泛应用,所以选择它作为核心存储方案(请注意不一定非要使用Kafka)。现在我当然不能直接把它发布,而是通过一些API对前端提供服务。如果不深思熟虑,我也拒绝让后端处理偏移量(offsets),因为这会对如何应对实例失效造成太多限制。 那我该怎么办呢?两个独立的分层:第一是处理访问流量的API层,然后是保持长期链接和有状态消息流...