简介;
原计划这章应该讲RabbitMQ的RPC调用的,后来想想,这个场景应该用的不多,现在比较火的微服务,要么用dubbo,要么用spring cloud,用RabbitMQ做RPC比较少见,所以就先跳过了,有需要再补充。
其实网上RabbitMQ和Spring集成的教程有不少,我也大致看了看,大部分都是言简意赅,代码配置一贴,然后就可以用了,而我希望我的教程能多和大家一起探讨一些“为什么”。
2.Spring AMQP
Spring AMQP中有两个单词,Spring都知道,那AMQP是什么?
中文意思是,高级消息队列协议,然后用蹩脚的英语猜一下,advance message queue protocol,差不多了,advance变成形容词高级的-advanced,queue变成queuing(排队论,学术一点),所以,AMQP就是Advanced Message Queuing Protocal。
AMQP 0-9-1 是RabbitMQ支持的协议之一,0-9-1是个版本号,正常情况下推荐使用,它所表现出的形式,就是前面几张介绍的内容
RabbitMQ还支持其他版本的协议,具体可以参考这里
Spring AMQP的定义如下
The Spring AMQP project applies core Spring concepts to the development of AMQP-based messaging solutions. It provides a "template" as a high-level abstraction for sending and receiving messages. It also provides support for Message-driven POJOs with a "listener container". These libraries facilitate management of AMQP resources while promoting the use of dependency injection and declarative configuration
意外的发现谷歌翻译的很通顺
Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发。 它提供了一个“模板”作为发送和接收消息的高级抽象。 它还通过“侦听器容器”为消息驱动的POJO提供支持。 这些库促进AMQP资源的管理,同时促进使用依赖注入和声明性配置