暴风雨直接来自MySQL?

时间:2014-07-08 08:12:27

标签: mysql database hadoop real-time apache-storm

我想使用Storm群集实时监控用户活动。目前,用户活动日志保存在MySQL中。 MySQL每分钟记录约100,000条记录,每天记录20,000,000条记录。我想每N分钟做一次topN浏览项目排名。如何为此设计喷口?我应该直接从spout中的MySQL查询或使用像Kafka这样的消息队列吗?我想要实时表现,所以更喜欢第一种方式。但我发现罕见的生产实施选择这种方式。为什么呢?

1 个答案:

答案 0 :(得分:0)

要直接从MySql Bin Logs发出元组,你可以在github(https://github.com/flipkart-incubator/storm-mysql)上使用这个mysql spout。 此喷口会将您的行更新作为流发出。这个spout使用精彩的Open Replicator(https://github.com/whitesock/open-replicator)来拖尾日志。

对于您的用例,那么可能会写一个类似于此的螺栓: https://github.com/nathanmarz/storm-starter/blob/master/src/jvm/storm/starter/RollingTopWords.java

这种方法消除了对消息队列和更多移动部件的需求。

免责声明:上述Mysql Spout的作者。