1:kafka,rabbitMq,rocketMq区别
kafka
吞吐量:kafka的的吞吐量是非常优秀的,在常规的机器上,一台机器也可以达到每秒十几万的QPS
性能: 性能也非常优秀,基本上发送消息给kafka都是毫秒级的
高可用:kafka支持集群部署,即使有一台机器宕机了,还是可以继续运行
缺点:功能单一,没有像延时消息,事务消息等功能
适用场景:用在用户的行为日志采集和运输上
rabbitmq
吞吐量:相比于kafka和rocketMq较低,如果遇到特别高的并发的话可能支持不le
高可用:RabbitMq支持集群部署,即使有一台机器宕机也可以继续提供服务
功能:可以保证数据不丢失,而且提供了很多高级功能,比如:延时消息,消息重试,死信等
缺点:源码是使用erlang编写的,阅读源码困难
RocketMq
吞吐量:rocketMq的吞吐量也是很高的,而且也可以做到数据不丢失
高可用:支持集群部署
功能:也提供了很多的高级功能,比如:延时消息,事务消息等,最主要是源码是使用Java来写
的,可以方便的阅读,并且根据需求去修改它的源代码
2:RocketMq是如何承载高并发访问的
一台RocketMq可以承载十几万的QPS,如果现在有几十万的QPS,那么就会集群部署,比如部署了3台,现在有30万的QPS,那么