前言
时至今日, Spring在Java生态系统与就业市场上,面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring从往日的IoC框架,已发展成Cloud Native基础设施,衍生出大量Spring技术栈,如大家熟知
SpringBoot,Spring Cloud和Spring Security等。Spring的成功也给开发人员带来了不小的挑战,无论在架构选型,还是在日常开发中。唯有系统性地掌握Spring Framework思想、设计,以及实现,可游刃有余,以免进退失据。庞大的生态更需要高效的方法来理清思路,丰富的经验来指点迷津,充足的实践来巩固效果。
ActiveMQ
我们先看ActiveMQ。其实一般早些的项目需要引入消息中间件,都是使用的这个MQ,但是现在用的确实不多了,说白了就是有些过时了。我们去它的官网看一看,你会发现官网已经不活跃了,好久才会更新一次。
它的单机吞吐量是万级,一些小的项目已经够用了,但对于高并发的互联网项目完全不够看。
在高可用上,使用的主从架构的实现。
在消息可靠性上,有较低的概率会丢失数据。
综合以上,其实这个产品基本可以弃用掉了,我们完全可以使用RabbitMQ来代替它。
RabbitMQ
rabbitMQ出现后,国内大部分公司都从activeMQ切换到了rabbitMQ,基本代替了activeMQ的位置。它的社区还是很活跃的。
它的单机吞吐量也是万级,对于需要支持特别高的并发的情况,它是无法担当重任的。
在高可用上,它使用的是镜像集群模式,可以保证高可用。