【企业项目级】Spring Boot整合RabbitMQ
-
- 为啥要整合这玩意
- 怎么整合
- 遇到的问题总结
-
-
- 1.org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
- RabbitMQ报错ERROR: node with name "rabbit" already running on "lhg1"
- org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener method 'public void cn.bocon.maintain.h.consumer.Biz2051DataHander.dataMsgInfoMin(java.lang.String,com.rabbitmq.client.Channel,org.springframework.amqp.core.Message)' threw exception
-
为啥要整合这玩意
一个简单的案例
我的目的是为了通讯而用:
请看这篇文章
https://blog.csdn.net/u013794093/article/details/83107861
RabbitMQ中,其通信模式不再是传统的服务器\客户端模型(B\S模型),而是一种新型的消费者、生产者和代理的模型。
通信过程:生产者(producer)负责创建消息,并发布到代理服务器(RabbitMQ)即可。消费者连接代理服务器,订阅到自身的队列(queue)上,即可消费自己关注的消息。其中,消息包含两部分内容:有效载荷(payload)和标签(label)。有效载荷就是真实需要传输的数据,而标签用来标记消息,让RabbitMQ将消息发送到感兴趣的消费者。其流程大致如下:
无论是作为生产者,发布消息之前,还是作为消费者,消费消息之前,应用程序都需要和Rabbit代理服务器创建一条TCP连接。而后,应用程序创建AMPQ信道将AMQP命令发送出去,实现发布消息、订阅队列或接收消息。信道是建立在“真实的”TCP连接内的虚拟连接。同时,每个信道将会被指派一个唯一ID。
为什么需要信道,而不是通过TCP连接呢?主要原因在于对os(操作系统)而言建立和销毁TCP的开销非常昂贵。而当我们为所有线程只使用一个TCP连接以满足需求时,但又为了能确保每个线程的私密性,因此创建私密通信路径——信道。信道类似于使用的光缆,一根光缆代表TCP连接,而内部的不同光纤束代表不同的信道,保证通信的高效进行。
rabbimq是消息中间件的 一种,消息中间件不仅可以实现可靠的异步通信,还可以实现即时通讯,注意: rabbitmq 不能替代tcp通信,rabbitmq只是让消息接收和处理分开用尽许多办法来提高性能。
怎么整合
安装rabbitmq环境
- 下载地址:http://www.erlang.org/downloads