消息中间件服务除了MQ,你还能选择什么?
Posted 技术修养之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件服务除了MQ,你还能选择什么?相关的知识,希望对你有一定的参考价值。
引言:
下订单后,需要发短信,邮件通知,这些通知类事件,服务自身内的逻辑解耦,如何做?
是不是很自然想到了,MQ消息中间件,是的它很强大,这里不做介绍。这里我想要安利的是一个guava的eventbus实现sever自身内的pub/sub,给中小型的项目开发者一个新选择。
eventbus是guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式(observer模式),eventbus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。
eventbus相比MQ中间件优势:
很轻量级,仅仅需要引入一个外部jar包,编写pub/sub实现类,即可实现服务自身内的解耦;不需要搭建mq中间件服务;eventbus是server自身内的订阅,对于可用性和扩展性, 可以通过加机器来解决的, 举个例子,现在是1台server处理下单接口,然后下单会发eventbus消息自己消费, 通过加机器来分担下单接口的压力,自然就缓解了eventbus这一步的数量级。
劣势:
消息不可靠,不能分布式消费,仅仅是服务自己订阅自己进行消费
依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
PUB:
SUB:
END。很轻松的把非必须的耗时操作,解耦,岂不是很方便
以上是关于消息中间件服务除了MQ,你还能选择什么?的主要内容,如果未能解决你的问题,请参考以下文章