close

這邊使用的是nodejs(egg)
一張圖簡介一下 ELK+kafka做什麼用 (用於數據分析,log分析)
https://i.imgur.com/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);
                });  
        });
    });
    }
arrow
arrow
    文章標籤
    Promise Kafka nodejs egg
    全站熱搜

    nL 發表在 痞客邦 留言(0) 人氣()