最近学习rabbitmq,想到个问题:
一个exchange绑定1000个queue,和5个exchange,每个exchange绑定200个queue,这两种设计,在消息转发的效率上,会有差别吗?
最近学习rabbitmq,想到个问题:
一个exchange绑定1000个queue,和5个exchange,每个exchange绑定200个queue,这两种设计,在消息转发的效率上,会有差别吗?
一提到性能,就不能单单看一方面,列了几点:
如果你现在只是玩玩,其实暂时还不需要考虑性能问题,先试着熟悉api做些demo出来。
以下想法皆为从一个码农的角度去思考,对 RabbitMQ 没深入了解,仅作参考。
从算法时间复杂度上来说,如果按照顺序查找:
1 个 exchange + 1000 个 queue,一次投递的平均查找次数是 1 + 500
5 个 exchange + 200(5组) 个 queue,一次投递的平均查找次数是 2.5 + 100
如果按照 hash 查找的话,那几乎没什么区别了,而且相信 RabbitMQ 不会采用顺序查找。
exchange 我觉得是进行业务区分,命名空间管理的作用更大于上面考虑的效率,RabbitMQ 作为金融行业都使用的消息队列本身应该不存在这种效率上的问题。