让API 返回 Kafka- producer.send 事件 use Promise

这边使用的是nodejs(egg)
一张图简介一下 ELK+kafka做什么用 (用于数据分析,log分析)
kafka 用做数据写入前的缓冲伫列
ES 数据最后写入的资料库
kibana 视觉呈现数据
logstash 解析log格式转换
http://img2.58codes.com/2024/xaSVX2k.png

1.Kafka 连接

        const client = new Kafka.KafkaClient({kafkaHost: this.app.config.kafka.host});         const producer = new Kafka.Producer(client);

2.原本 等待连接 producer.on('ready'
后发送讯息 producer.send(payloads

         producer.on('ready', function () {                producer.send(payloads, function (err, data) {

3.这边让 API可以回应 做一个 Promise 等待
其他事件同样道理实作

    other_fun(){      let r = await this.kibana_ready(producer,payloads,query);      this.ctx.body = this.ctx.helper.res(r);    }        async kibana_ready(producer,payloads,query){        return new Promise(function(resolve, reject) {        producer.on('ready', function () {                producer.send(payloads, function (err, data) {                    let result = {};                    return resolve(result);                });          });    });    }

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章