本篇是 O’Reilly Data Show 的一个采访实录,大数据公司 MapR 联合创始人、Uber 首席架构师 M.C. Srivas 讲述 IOT 时代的流处理和消息系统 。主持人和 Srivas 讨论了他在数据管理和开发分布式系统的经验。在 Srivas 的职业生涯中,他负责的友分布式系统、数据库、查询引擎、消息系统等。
Srivas 指出,上述系统广泛的部署在企业中,这些企业要求系统具有安全、容灾和支持多数据中心的功能。主持人和 Srivas 聊了很多主题,这里重点聚焦在实时系统和应用上。下面是谈话的一些亮点:
运行在多数据中心的应用和系统
广告服务需要在 70 到 80 毫秒限制内返回给广告商。当你点击一个页面,广告栏、侧边栏和底部的广告不得不在 80 毫秒返回结果。客户的数据中心遍布世界各地,日本、中国、新加坡、香港、印度、俄国、德国等。他们把各数据中心的数据发送到主数据中心来进行整个点击数据的处理,然后返回给用户。
他们需要一种清晰的方法让这些点击数据返回主数据中心,主数据中心可能运行在美国、日本或者德国,或者其他地方。一般情况下会在每个地方通过完全独立的 Kafka 集群实现,但有时会出现跨集群生产者和消费者不协调。比如,在日本数据中心有一个 Kafka 集群在运行,但在香港的 Kafka 集群不能进行故障切换。因为香港的 Kafka 集群是完全独立的,它并不能监测到日本数据中心的什么数据被消费了和什么数据产生了。如果消费者在日本的 Kafka 集群消费数据并迁移到香港的 Kafka 集群,他们会变成脏数据。许多客户在咨询这方面问题的解决方法。
数据源现在不是发送到几个数据中心,而是百万个数据中心。想象一下自动驾驶汽车,每个自动驾驶汽车好比一个数据中心,它生成很多数据。再看一下飞机,它也是一个大的数据中心,这些都是我们需要为规模化 IOT 所需要做的。
物联网时代的流处理和消息系统
一个文件系统是庞大的,你写入文件,读取文件,文件系统是怎样获取到你感兴趣的文件?如果我查看一个流处理系统,我正在查询的是一个完全实时的。如果一个发布者发布了一些数据,所有在相同数据中心的相关监听者需要在五毫秒钟获取通知。如果我们的数据中心跨越半个地球,你在日本数据中心发布数据,那南非或者其他地方的数据中心要在一秒之后才能获取到信息。
我们学习 Kafka、Tibco、RabbitMQ 等技术,也学习了很多监听数据的知识,来解决流处理和消息系统的问题。这是物联网 IOT 时代所需要的。
世界范围内最大的生物识别系统
我们完成生物识别系统 Aadhaar ,它能关联你的银行账户、医院就诊以及其他所有的数据记录——比如,学校入学、航空安检、护照等。现在大约有十亿人已具有这种生物识别,还有 300 万即将完成。如果你想从 ATM 机中取钱,你只要刷指纹即可取钱,而不需要一张银行卡。
Strata San Jose 2016 session: “ Real-time Hadoop: What an ideal messaging system should bring to Hadoop ” (featuring Ted Dunning of MapR)
Strata San Jose 2016 session: “ When one data center is not enough: Building large-scale stream infrastructure across multiple data centers with Apache Kafka ”
Architecting the World’s Largest Biometric Identity System
Srivas was on a panel on Stream Processing Systems that I moderated in early January .
译者介绍
侠天,专注于大数据、机器学习和数学相关的内容,并有个人公众号:bigdata_ny 分享相关技术文章。
查看英文原文: Stream processing and messaging systems for the IoT age
评论