什么是卡夫卡(kafka)
是一种分布式的,基于发布/订阅的消息系统,消息以消息队列的形式进行发送
如何使用kafka
安装kafka
npm i kafka-node
配置config
配置kafka的地址和topic,放在config文件中方便修改配置
kafaka: {
kafkaHost: "卡夫卡地址",
topic1: "topic1",
topic3: "topic2",
topic2: "topic3",
},
监听和发送
// 创建Kafka客户端
const client = new kafka.KafkaClient({ kafkaHost: config.kafaka.kafkaHost });
// 创建消费者
const kafaka_watch = new kafka.Consumer(client, [
{ topic: config.kafaka.topic_test }
]);
// 创建生产者
const producer = new kafka.Producer(client);
// 发送消息
function kafka_send(topic, messages) {
const payload = [{ topic, messages }];
producer.send(payload, function (err, data) {
if (err) {
console.error("Error sending message:", err);
} else {
// console.log("Message sent successfully:", JSON.parse(messages));
}
});
}
术语介绍
topic:Topic(主题)是消息的逻辑分类或者容器。它是 Kafka 中最基本的概念之一,用于组织和管理消息的发布和订阅。
我的理解是一个topic就是一个消息队列,为了让各种不同的消息不打岔,才分出不同的topic。
uuid:UUID(Universally Unique Identifier)是一种用于唯一标识消息的标识符。每个消息都会被分配一个UUID,以确保消息的唯一性和跟踪性。uuid放在放在message里,可以用uuidv4生成。