mqtt协议-broker之moqutte源码研究六之集群
moquette的集群功能是通过Hazelcast来实现的,对Hazelcast不了解的同学可以自行Google以下。 在讲解moquette的集群功能之前需要讲解一下moquette的拦截器,因为moquette对Hazelcast的集成本身就是通过拦截器来实现的。 一。拦截器 io.moquette.spi.impl.ProtocolProcessor类里面有一个BrokerInterceptor类,这个类就是broker拦截器,这个对象,在processConnect,processPubAck,processPubComp,processDisconnect,processConnectionLost,processUnsubscribe,processSubscribe,processPublish等八个地方都用到了,说明在broker处理各个报文的关键期间都会用到,我们先看一这个类的结构 private static final Logger LOG = LoggerFactory.getLogger(BrokerInterceptor.class); private final Map<Class<?>, List<InterceptHandler>> handlers; private final ExecutorService executor; private