对于即时通讯网来说,所有的技术文章和资料都在围绕即时通讯这个技术方向进行整理和分享,这一次也不例外。对于即时通讯系统(包括IM、消息推送系统等)来说,MQ消息中件间是非常常见的基础软件,但市面上种类众多、各有所长的MQ消息中件间产品,该怎么去选择?这是个问题!
对于很多经验不足的开发者来说,一个公司内部用的IM聊天系统,总用户量也不过百十来人,动辄就是Kafka、MongoDB,美其名曰为了高性能和可扩展性,真是大炮打蚊子。而对于中大型的即时通讯场景来说,有的开发者确为了贪图使用简单、资料全面,反而使用臃肿不堪的ActiveMQ,这就有点失去章法了。
维度1:资料文档
1)Kafka:资料数量中等。有Kafka作者自己写的书,网上资料也有一些。
2)RabbitMQ:资料数量多。有一些不错的书,网上资料多。
3)ZeroMQ:资料数量少。专门写ZeroMQ的书较少,网上的资料多是一些代码的实现和简单介绍。
4)RocketMQ:资料数量少。专门写RocketMQ的书目前有了两本;网上的资料良莠不齐,官方文档很简洁,但是对技术细节没有过多的描述。
5)ActiveMQ:资料数量多。没有专门写ActiveMQ的书,网上资料多。
维度2:开发语言
1)Kafka:Scala
2)RabbitMQ:Erlang
3)ZeroMQ:C语言
4)RocketMQ:Java
5)ActiveMQ:Java
维度3:支持的协议
1)Kafka:自己定义的一套…(基于TCP)
2)RabbitMQ:AMQP
3)ZeroMQ:TCP、UDP
4)RocketMQ:自己定义的一套…