Storm internode communication
To begin with, Storm has been using ZeroMQ as the communication channel for internode communications. In version 0.9, it was experimentally replaced by Netty and in version 0.9.2, Netty has been completely adopted as a replacement for ZeroMQ. In this section we will touch upon both ZeroMQ and Netty because it's very important to understand what makes them different and why these were chosen by the implementers of Storm over their peers.
The preceding figure clearly describes how the different components communicate with each other using LMAX, ZeroMQ, or Netty based on whether they are executing within same worker on same node or not.
ZeroMQ
ZeroMQ is not a fully fledged messaging system such as AMQP, Rabbit MQ, and so on. It's a library that can be extended and used in building truly performance-oriented messaging systems for lean, mean situations. It's not a full-fledged framework, and it's an extensible toolkit—an asynchronous messaging library that serves the...