MQ 只要分为三部分:
- 服务处理端
- 消息发送端
- broken(消息收发中心)
Publish/Subscribe (发布-订阅)模型, 发布-订阅模型定义了如何向一个内容节点发布和订阅消息,这个内容节点称为topic(主题)。 主题可以认为是消息传递的中介,消息发布这将消息发布到某个主题,而消息订阅者则从主题订阅消息。 主题使得消息的订阅者与消息的发布者互相保持独立,不需要进行接触即可保证消息的传递,发布-订阅模型在消息的一对多广播时采用
使用MQ成本低。简单易用。低功耗。内存消耗不严重。
我这里使用的是Mosquitto http://mosquitto.org/download/
测试: 1. 启动SpringbootMqttApplication 2. 使用MQ发送工具模拟消息
我这个代码只是简单的使用,中间你可以按照实际的需求去做消息加密,自己实现一些特殊的功能。
喜欢就给个⭐Start⭐吧
MqttMessageHandler.java
/**
*自动创建线程池,有缺点。消息发送时如果过多,会导致日志打印MQ发送消息失败问题,但是其实不是MQBroken的问题,是线程池的问题
*/
private ExecutorService threadPools = Executors.newFixedThreadPool(300);
//手动创建线程池,阿里开发规范推荐
private ThreadPoolExecutor threadPools = new ThreadPoolExecutor(10, 20, 120, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>());