Maximize throughput with RabbitMQ

后端 未结 3 1240
小蘑菇
小蘑菇 2021-01-30 01:33

In our project, we want to use the RabbitMQ in \"Task Queues\" pattern to pass data.

On the producer side, we build a few TCP server(in node.js) to recv high concurrent

3条回答
  •  忘了有多久
    2021-01-30 02:34

    According to a response I once got from the rabbitmq-discuss mailing group there are other things that you can try to increase throughput and reduce latency:

    • Use a larger prefetch count. Small values hurt performance.

    • A topic exchange is slower than a direct or a fanout exchange.

    • Make sure queues stay short. Longer queues impose more processing overhead.

    • If you care about latency and message rates then use smaller messages. Use an efficient format (e.g. avoid XML) or compress the payload.

    • Experiment with HiPE, which helps performance.

    • Avoid transactions and persistence. Also avoid publishing in immediate or mandatory mode. Avoid HA. Clustering can also impact performance.

    • You will achieve better throughput on a multi-core system if you have multiple queues and consumers.

    • Use at least v2.8.1, which introduces flow control. Make sure the memory and disk space alarms never trigger.

    • Virtualisation can impose a small performance penalty.

    • Tune your OS and network stack. Make sure you provide more than enough RAM. Provide fast cores and RAM.

提交回复
热议问题