0
から同じMSGを取得:何が起こるnodejs-カフカノードモジュール - 私はkafa消費者作成するには、「カフカ・ノードを」ノードモジュールを使用している各パーティション
var client = new kafka.Client(ZOO_KEEPER_URL, PORTAL_CLIENT_ID);
var topics = [
{ "topic" : MY_TOPIC_NAME,
partition: 0
},
{ "topic" : MY_TOPIC_NAME,
partition: 1 }
];
var options = {
autoCommit: false,
groupId: GROUP_ID,
fromOffset : false
};
var consumer = new Consumer(client, topics, options);
consumer.on('message', function (message) {
console.log("New Message; offset: "+ message.offset + " Partition: "+message.partition);
});
は検索されたオフセットは同じですパーティション0から1回、パーティション1から。 私が期待したのは、ZooKeeperがバランスをとってこれを管理する方法を知っていることです。
注: ユースケースは、カフカから使用可能な任意のMSGから読んでいる - >弾性検索に足す - >カフカにコミットする(自動コミットがfalseに設定されている理由です)
あなたは本当に感謝しています。私が今理解していないのは、オフセットAPIです.- var offset = new kafka.Offset(client);を呼び出すときに得られる最も早いオフセットの関係は何ですか? –
コンシューマが開始する場合、最新のコミットされたオフセットから、またはトピックの最後から、読み込みを開始する可能性が2つあります。 (パラメータ "auto.offset.reset"を参照してください)もちろん、読み込みのための位置を探すこともできます。コミットオフセットは、通常、クライアントが失敗した場合にメッセージが失われないようにするために使用します。クライアントは最新のコミットされたオフセットから再開することができます。 –