kafka

topic下的一个分区只能被同一个consumer group下的一个consumer线程来消费,但反之并不成立,即一个consumer线程可以消费多个分区的数据,比如Kafka提供的ConsoleConsumer,默认就只是一个线程来消费所有分区的数据。所以即分区数决定了同组消费者个数的上限

rockermq & kafka 消费限制_第1张图片

rockermq & kafka 消费限制_第2张图片

rockermq

rocketmq的topic中有队列(queue)的概念,也就是说一个节点上面可以有多个队列,这样能非常大的提高并发性,而kafka最多只能是一个分区一个进程消费,这样并发性限制非常大,并且单机分区数量不能过多,超过64个分区就出现明显的不稳定,但是rocketmq单机支持上万队列,所以并发性能非常好;

创建命令

sh /root/rocketmq/bin/mqadmin updateTopic -c whk -n "ip" -t offer -r 1 -w 1 -o true

参数说明

创建topic需要指定的参数,    -b 指定broker上创建topic    -c 指定cluster创建topic    -n 指定namesrv地址,cluster模式下必须从namesrv获取broker地址    -t topic的名字标志    -r/w 读写队列的个数,建议相等    -p queue的读写权限    -o 待研究不确定是不是保证全局有序消息的配置

rocketmq 注意点

https://blog.csdn.net/zhaozhenzuo/article/details/76791495

参考
https://blog.csdn.net/chunlongyu/article/details/54018010
https://www.cnblogs.com/freeweb/p/7817968.html