RabbitMq系列教程(一)

           RabbitMq做为一个成熟的消息队列商业产品,最早是为了给金融系统提供一种消息总线的功能,后来被广泛应用于各种中小型的网站中,RabbitMq的设计初衷就是为了让消费者和生产者解耦,可以插拔式的添加或减少任何一个生产者或消费者,并且生产者和消费者角色可以互换,一个rabbitMq的客户端可以既是生产者也是消费者。

           消息队列的作用:

           1.异步处理

           2.应用解耦

           3.流量削峰

           4.日志采集

           5.延时任务

          正是消息队列的诸多好处,所以在分布式的大环境下,变的越来越重要。

          先说一下为什么需要一个成熟的消息队列产品,在各种语言中,都可能原生的就有阻塞队列,很容易就可以实现一个生产者消费者模型,一般我们在学多线程时都会学习生产者消费者模型。但是我们自己实现的消费者生产者有哪些问题呢?

          1.如果支持暂存消息,存在内存是否会占用我们服务器的内存,存在磁盘是否会影响速率。

          2.分布式环境下,是否每一个服务里面都需要一个生产者消费者模型。

          3.对于消息发送失败,消息应答是否有处理

          4.各种类型的消息,是否支持发布/订阅,广播等模式,以满足业务的多样性

          5.是否支持消息的持久化

          6.往往在对性能要求很高的场合,生产者生产完消息后,消费者需要第一时间的接收到消息并处理消息,商业的消息队列                  产品往往对性能进行了很大的优化,例如rabbitmq在tcp的基础上建立了channel,多路复用。

发布了91 篇原创文章 · 获赞 13 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_41751625/article/details/98209980
今日推荐