深入探索Storm通信机制与性能优化
1. Storm节点间通信概述
Storm最初使用ZeroMQ作为节点间通信的通道。在0.9版本中,Netty开始作为实验性替代方案,到0.9.2版本,Netty已完全取代ZeroMQ。理解ZeroMQ和Netty的差异以及它们被选择的原因至关重要。
2. ZeroMQ
ZeroMQ并非像AMQP、Rabbit MQ那样成熟的消息系统,而是一个可扩展的库,用于构建注重性能的消息系统。它具有以下特点:
- 轻量级、异步的套接字库,可作为高性能并发框架。
- 比TCP更快,适合集群环境中的节点间通信。
- 不是网络协议,但能适应多种协议,如IPC、TCP、组播等。
- 异步特性有助于构建多核消息传输应用的可扩展I/O模型。
- 内置多种消息模式,如扇出、发布 - 订阅、请求 - 回复、管道等。
Storm中ZeroMQ的配置如下:
# Local mode is to use ZeroMQ as a message system, if set to false, using the Java message system. The default is false
storm.local.mode.zmq : false
# Each worker process used in zeromq communication number of threads
zmq.threads : 1
storm.local.mode.zmq
超级会员免费看
订阅专栏 解锁全文
59

被折叠的 条评论
为什么被折叠?



