耐久性の管理
でのレプリケーションとパーティショニングの構成 Kafka: を作成するとき topic 、そのパーティションの数を topic とともに指定できます replication factor。 は replication factor 各 のレプリカの数で partition 、各メッセージがレプリケートされるブローカーの数を決定します。
例: orders
topic 3 つのパーティションと 2 の が あるとします replication factor 。これは、各メッセージが 2 つの異なるブローカーにレプリケートされることを意味します。 1 つに障害が発生した場合でも broker 、残りの からメッセージにアクセスできます broker。
一貫性の確保
メッセージの送受信時の確認メカニズム: では Apache Kafka 、メッセージの送受信時に確認メカニズムを使用して、精度と耐久性を確保できます。 このメカニズムにより、次のアクションに進む前に、メッセージが正常に送信または確認されたことが保証されます。
例: acks
メッセージを送信するときに、オプションを使用して確認応答構成を指定 できます。 たとえば、 acks: 1
メッセージが broker のリーダーに正常に送信されたことを確認します partition。 確認応答を待つことで、他のタスクを続行する前に、メッセージがいつ安全に保存されたかを知ることができます。
const { Kafka } = require('kafkajs');
const kafka = new Kafka({
clientId: 'your-client-id',
brokers: ['broker1:port1', 'broker2:port2'],
});
const producer = kafka.producer();
const sendMessages = async() => {
await producer.connect();
await producer.send({
topic: 'your-topic',
messages: [{ value: 'Hello Kafka!' }],
acks: 1, // Acknowledge after the message is successfully sent
});
await producer.disconnect();
};
sendMessages();
ノート:
-
'your-client-id'
、'broker1:port1'
、'your-topic'
、およびその他の値をプロジェクトの実際の情報に 置き換えてください。 - 構成オプションと確認メカニズムは、特定のプロジェクト要件に応じて異なる場合があります。
Apache Kafka パーティショニング、レプリケーション、確認応答メカニズムの使用、およびレプリケーション オプションを設定することにより、の使用時 に耐久性と一貫性の確保を効果的に管理できます Node.js。