最近工作任务有点轻,且刚到新公司,接触到了RabbitMQ,觉得该消息代理很神奇,想先入个门,结果还出了一个糗事:因为本人比较菜,又想学RabbitMQ,结果找公司架构问了一个很弱智的问题—让他帮我介绍一个入门级的学习RabbitMQ的blog,结果对方只发来一句:详情请见官网http://www.rabbitmq.com/,后来补充了一句,学新技术,找官网……
好吧,闲话不多说,开始我们的HelloWorld吧!
材料准备:
1.本地安装好Erlang环境
2.本地安装好RabbitMQ服务器
3.本地Maven web 空项目一个
开始:
1.找到pom.xml文件,加入下面依赖
<!-- RabbitMQ -->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.0.4</version>
</dependency>
思考: 为什么要加入这段依赖?
回答(不一定准确): RabbitMQ是基于Erlang开发的,对于一些重要的开发语言(Python | Java | Ruby | PHP | C# | Javascript | Go)都有相应的驱动和客户端, 我们使用的是java开发,故先要获取java RabbitMQ客户端,上面那段便是java RabbitMQ的maven依赖配置
2.
由于生产者和消费者都是咱们自己写的应用程序,且和队列有关,而且需要和队列进行通信,故在代码结构上可以抽象出一个抽象类:AbstractApplication用来抽象生产者和消费者一些共同的操作,代码如下:
抽象类:AbstractApplication.java
public abstract class AbstractApplication {
protected Channel channel;
protected Connection connection;
protected String appName;//队列名称
protected String name;//生产者或者消费者名称
public AbstractApplication (String appName ,String name)