rabbitmq 的使用
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
一个生产者进程或者多个生产者进程往队列尾部添加需处理的任务
多个消费者从队列拿数据进行消费。
进程1拿1后,进程2拿2,进程1拿3,进程2拿4。。。。
rabbitmq 似乎是没有存储的概念。
将进程移到不同的机器上自然就能利用多台机器进行处理任务。
kafka 的使用
将消息进行存储
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
消费者(group)连接topic,指定offset开始进行消费。
borker4 已经挂掉。。。
如果 record 落在 partition 0 则被发送到 broker 1,同步到 broker 2
如果 record 落在 partition 1 则被发送到 broker 0 , 同步到 broker 2
如果 record 落在 partition 3 则被发送到 broker 2 , 同步到 broker 0 和 broker 1.
关于 batch.size 和 linger.ms , 达到batch.size 提交,达到指定时间也提交。
5ms内数据量没有达到batch.size(默认16K) 提交。
如果1ms 您的数据量能达到32K,请重新设置batch.size .
貌似以前做项目时事数据积累到100条往solr提交一次,神似。
转载于:https://my.oschina.net/qidis/blog/1526477