내구성 및 일관성 관리 Apache Kafka Node.js

내구성 관리

복제 및 파티셔닝 구성 Kafka: 를 생성할 때 와 함께 topic 파티션 수를 지정할 수 있습니다. 각 메시지가 복제될 브로커의 수를 결정하는 각 복제본 의 수 입니다. topic replication factor replication factor partition

예: orders topic 3개의 파티션과 2개의 파티션이 있다고 가정해 보겠습니다. replication factor 이는 각 메시지가 2개의 다른 브로커에 복제됨을 의미합니다. 오류가 발생 하는 경우 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 파티셔닝, 복제, 확인 메커니즘 사용 및 복제 옵션을 구성하면 .NET 사용 시 내구성 및 일관성 보장을 효과적으로 관리할 수 있습니다 Node.js.