1: 使用的阿里云服务器. 下载了一个mq并且能通过页面进行访问.
2: 准备两个项目,作为生产者和消费者.使用springboot的框架进行搭建,那么我选择在yml配置文件中配置rabitMq以达到我想要的效果.
首先: 加入对rabbitMq的jar包引用.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
3: 开始在项目中进行连接配置:
我决定将连接写在yml中,类似于数据库的那种形式.
像这样 :
spring:
rabbitmq:
host: xx.xx.xxx
port: 5672
username: guest
password: guest
这些做好之后,进行生产者的定义.
创建一个config,进行三个步骤.
全部用@Bean的形式.
第一: 创建交换机
第二: 创建消息队列
第三: 把交换机和队列进行绑定.
后面就是写个方法,注入RabbitTemplate类,
然后调用convertAndSend()方法,往队列里丢消息就行了.
然后进行消费者的定义.
建立一个类,
使用注解@RabbitListener(queues = {“xxx”}) 标注在类上.
使用注解RabbitHandler 标注在接受方法上.
就可以进行接收消息了. 消费者一启动就会进入监听状态.
方法的入参为生产者发送的消息,注意数据类型要保持一致.
不支持对象的发送,生产者发送只支持字符串,字节数组,以及序列化后的值.
ps:
生产者消费者类都需要让spring进行管理.
也就是说,需要额外加上@Compent,或者@Service或其它注解. 只要能让sprin发现并管理即可.
创建队列的时候,第二个参数为true时,
生产者需要发送消息后才能创建交换机以及队列.
但是消费者启动会自动创建交换机以及队列,建议.
否则消费者启动时,未声明队列会报错.
消费者先与生产者启动的时候,为了不报错,也要有一份配置信息.