我们有一个MySQL表,每天收到大约500万条记录。
每个记录都需要一点时间来处理与其相关的一些元数据。因此,我们有一个“生产者”进程,它将每个记录ID发送到消息队列(SQS)。
然后,我们有50个“消费者”,它们将提取每个ID并执行必要的处理任务。
这种模式效果很好。然而,数据量继续增长。我们的单个生产者不再能够跟上插入到表中的数据量。
我知道,我们可以增加更多的消费者,以加快处理。但是,在不发生ID冲突的情况下,加速生产者的好策略是什么呢?
更新
以下是表的结构:
id int(10) AUTO_INCREMENT
name varchar(255)
is_processed ti
我想写一个函数,一旦主题中的最后一条消息被读取,它就会调用回调。
function getCurrentMessages(kafka, topic, cb_done){
// Start consuming from the beginning
var consumer = new kafka.Consumer(new kafka.Client(), [{topic: topic, offset: 0}], {fromOffset: true});
consumer.on('message', function(msg){
// Do something w
我试图用kafka-python构建一个应用程序,在这个应用程序中,使用者从一系列主题中读取数据。非常重要的是,消费者不会两次阅读同一条消息,但也不会错过一条消息。
一切似乎都很好,除了当我关闭消费者(例如失败),并试图开始阅读从抵消。我只能读取主题中的所有消息(这会创建双读),或者只侦听新消息,只监听(并且错过了在故障期间发出的消息)。当暂停消费者时,我不会遇到这个问题。
为了解决这个问题,我创建了一个孤立的模拟。
在这里,通用生产者:
from time import sleep
from json import dumps
from kafka import KafkaProducer
目标:读取主题中的所有消息,然后终止该过程。
我可以通过以下内容连续阅读消息:
props.put("bootstrap.servers", kafkaBootstrapSrv);
props.put("group.id", group_id);
props.put("max.poll.records", 1); // Only get one record at a time. I understand that to read all messages this will need to be increased
props.put("
在社区的帮助下,我现在有了一个很棒的输入表单,需要进行一些调整:请注意六条记录的示例:
如果我前进(“下一条记录”按钮)或“后退”(“上一条记录”按钮)一次浏览一个记录,或者“转到第一条记录”(使用“第一条记录”按钮),它们都会正确显示。
但是,如果我从Lookup member组合框中选择任何成员,所有图片都可以正常显示,但第一条记录除外,它总是显示最后一张图像。
代码如下:
Private Sub Form_Current()
Dim strPath As String
If IsNull(Me!MemPicturePath) Then
st