RabbitMQ
RabbitMQ是一个开源的AMQP(Advanced Message Queue Protocol)实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
AMQP
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
实践
0.MAVEN依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
1.RabbitMQConfig
@Configuration
public class RabbitMQConfig{
@Bean
public Queue registerQueue(){
Queue queue=new Queue("myqueue");
return queue;
}
}
2.生产者
@RestController
@RequestMapping("/rabbitmq")
public class RabbitMQControoler{
@Autowired
AmqpTemplate rabbitmqTemplate;
@RequestMapping("/send")
public void send(@RequestParam String msg){
rabbitmqTemplate.convertAndSend("myqueue",msg);
}
}
3.消费者
@Component
public void class Consumer{
private static Logger logger=Logger.getLogger(Consumer.class);
@RabbitListener("myqueue")
@RabbitHandler
public void process(String msg){
logger.info("consume success!msg="+msg);
}
}