赞
踩
项目 | RabbitMQ | ActiveMQ | RocketMQ | Kafka |
---|---|---|---|---|
公司/社区 | Rabbit | Apache | 阿里 | Apache |
开发语言 | Erlang | Java | Java | Scala&Java |
协议支持 | AMQP,XMPP,SMTP,STOMP | OpenWire,STOMP,REST,XMPP,AMQP | 自定义协议 | 自定义协议 |
可用性 | 高 | 一般 | 高 | 高 |
单机吞吐量 | 一般 | 差 | 高 | 非常高 |
消息延迟 | 微秒级 | 毫秒级 | 毫秒级 | 毫秒以内 |
消息可靠性 | 高 | 一般 | 高 | 一般 |
追求可用性:Kafka、 RocketMQ 、RabbitMQ
追求可靠性:RabbitMQ、RocketMQ
追求吞吐能力:RocketMQ、Kafka
追求消息低延迟:RabbitMQ、Kafka
在pom中加入依赖
<!--AMQP依赖,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
在application.yml配置mq的参数
spring:
rabbitmq:
#设置RabbitMQ的IP地址
host: 192.168.1.186
#设置rabbitmq服务器用户名
username: root
#设置rabbitmq服务器密码
password: root
#设置rabbitmq服务器连接端口
port: 5672
生产者
@RequiredArgsConstructor
@RestController
@RequestMapping("publisher")
public class PublisherController {
private final RabbitTemplate rabbitTemplate;
@GetMapping()
public String sendMess(String queueName ,String message ){
rabbitTemplate.convertAndSend(queueName,message);
return "发送成功";
}
}
消费者
@Component
public class ConsuerListener {
//指定对列名称
@RabbitListener(queues = "simple.queue")
public void listener(String mess){
System.out.println("接收到了来自消费者的消息:"+mess);
}
}
注:指定的对列需要在RabbitMQ管理后台添加
使用postman往接口发送一条请求,携带对列名称以及mess
到此,springboot使用RabbitMQ成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。