MQ消息队列(1)

1.什么是消息队列

消息(message):是指在应用间传递的内容,可以是文本字符串,也可以是一个封装的对象。
消息队列(message queue):是应用之间的一种通信方式,在通信过程中消息放松之后立即返回,由消息系统来保证消息的可靠传递。对于消息发送者只管将消息发布到消息系统,对于消息消费者只管来消息系统来消费消息,发送者和消费者两者之间不用知道对方的存在。

2.当前主要的mq产品

当前主要的消息队列产品有:老牌的activemq,rabbitmq和当前比较火的kafka,zeromq和阿里baba捐赠给apache基金会的rocketmq

3.mq的特点以及使用场景

从上面的描述中可以看出,消息队列可以应用间一种异步的协作机制。对此,可以使用订单系统来为例,对于一个用户的“下单”请求其中的业务逻辑可能包括开对应的单据,发红包,发送短信通知等等。在业务较简单的时候,可以在服务中将这些逻辑放在一起同步执行;当服务的变的更复杂,同时用户数量增加,需要提升服务的性能,这种情况下就可以使用MQ来增强应用服务的性能。在这种情况下使用MQ,可以将“订单”中的主线程“开对应单据”,“扣减库存”等关键业务完成后,就可以立即返回,同时将其他不重要的业务(发红包,发送短信通知)作为一条消息发送到MQ,由其他单独的线程来拉取MQ中的消息(或者由MQ进行推送),从而来执行其中的业务。
以上是用于服务的解耦,提升应用性能。其他的场景还有最终一致性,广播,错峰流控等。