网站开发和合同范本,国家中职示范校建设专题网站,免费地方门户网站源码,设计师交流网站ActiveMQ 我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件#xff0c;都是使用的这个MQ#xff0c;但是现在用的确实不多了#xff0c;说白了就是有些过时了。我们去它的官网看一看#xff0c;你会发现官网已经不活跃了#xff0c;好久才会更新一次。 它的单机吞…ActiveMQ 我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件都是使用的这个MQ但是现在用的确实不多了说白了就是有些过时了。我们去它的官网看一看你会发现官网已经不活跃了好久才会更新一次。 它的单机吞吐量是万级一些小的项目已经够用了但对于高并发的互联网项目完全不够看。 在高可用上使用的主从架构的实现。 在消息可靠性上有较低的概率会丢失数据。 综合以上其实这个产品基本可以弃用掉了我们完全可以使用RabbitMQ来代替它。 RabbitMQ
rabbitMQ出现后国内大部分公司都从activeMQ切换到了rabbitMQ基本代替了activeMQ的位置。它的社区还是很活跃的。 它的单机吞吐量也是万级对于需要支持特别高的并发的情况它是无法担当重任的。 在高可用上它使用的是镜像集群模式可以保证高可用。 在消息可靠性上它是可以保证数据不丢失的这也是它的一大优点。 同时它也支持一些消息中间件的高级功能如消息重试、死信队列等后续文章会讲到。 但是它的开发语言是erlang国内很少有人精通erlang所以导致无法阅读源码。 对于大多数中小型公司不需要面对技术上挑战的情况使用它还是比较合适的。而对于一些BAT大型互联网公司显然它就不合适了。 RocketMQ
接下来我们来讨论一下我比较喜欢的MQ-RocketMQ它是阿里开源的消息中间件久经沙场非常靠谱。 它支持高吞吐量能达到10万级能承受互联网项目高并发的挑战。 在高可用上它使用的是分布式架构可以搭建大规模集群性能很高。 在消息可靠性上通过配置可以保证数据的绝对不丢失 同时它支持大量的高级功能如延迟消息、事务消息、消息回溯、死信队列等等后续文章会单独讲解。 它非常适合应用于java系统架构中因为它使用java语言开发的我们可以去阅读源码了解更深的底层原理。 目前来看它没有什么特别的缺点可以支持高并发下的技术挑战可以基于它实现分布式事务大型互联网公司和中小型公司都可以选择使用它来作为消息中间件使用如果我来做技术选型我首选的中间件就是它。 Kafka
kafka的吞吐量被公认为中间件中的翘楚单机可以支持十几万的并发相当强悍。 在高可用上同样支持分布式集群部署。 在消息可靠性上如果保证异步的性能可能会出现消息丢失的情况因为它保存消息时是先存到磁盘缓冲区的如果机器出现故障缓冲区的数据是可能丢失的后续文章会讲到。 它的功能非常的单一就是消息的接收与发送因此不适合应用于许多场景。 它在行业内主要应用于大数据领域使用它进行用户行为日志的采集和计算来实现比如“猜你喜欢”的功能。 所以如果没有大数据的需求一般不会选择它。