Understanding LMAX
One of the key aspects that attributes to the speed of Storm is the use of LMAX disruptor versus queues. We did touch upon this topic in one of the earlier chapters, but now we are going to dive deep into the same. To be able to appreciate the use of LMAX in Storm, we first need to get acquainted with LMAX as an exchange platform.
Just to reiterate what's been stated in one of the earlier chapters, this is how internal Storm communication happens:
Communication within different processes executing on the same worker (in a way, its inter-thread communication on a single Storm node); the Storm framework is designed to used LMAX disruptor
Communication between different workers across the node might be on the same node (here, ZeroMQ or Netty is used)
Communication between two topologies is attained by external and non-Storm mechanisms such as queues (for example, RabbitMQ, Kafka, and so on) or distributed caching mechanisms (for example, Hazelcast, Memcache, and so on)
LMAX is...