2017-06-08 22 views
0

私はカフカでメッセージを生成するために単純なプロデューサーを使用しています。 このメッセージはjsonオブジェクトです。カフカメッセージの値を読み取ることができません

これは私のプロデューサーのコードです:

const kafka = require('kafka-node'); 
    const Producer = kafka.Producer; 
    const KeyedMessage = kafka.KeyedMessage; 
    const Offset = kafka.Offset; 
    const Client = kafka.Client; 
    const p = 0; 
    const a = 0; 
    const topic = 'claims'; 

    const client = new Client('192.168.99.100:2181'); 
    const producer = new Producer(client, { requireAcks: 1 }); 

    producer.on('error', function (err) { 
    done.fail(err); 
    }); 

    producer.on('ready', function() { 
    const message = {status: 'Created', id_claims: '12345'}; 

    producer.send([ 
     { topic: topic, partition: p, messages: message, attributes: a } 
    ], function (err, result) { 
     expect(result).not.toBeNull(); 
     expect(err).toBeNull(); 
     done(); 
    }); 
    }); 

しかし、私は、このメッセージの内容を読みしようとしたとき、私はいつも

を取得[Objectオブジェクト]

これは私の消費者のコードです:

'use strict'; 

const util = require('util') 

const kafka = require('kafka-node'); 
const Consumer = kafka.Consumer; 
const Offset = kafka.Offset; 
const Client = kafka.Client; 
const topic = 'claims'; 

const client = new Client('192.168.99.100:2181'); 
const topics = [ 
    {topic: topic, partition: 0} 
]; 
const options = { autoCommit: false, fetchMaxWaitMs: 1000, fetchMaxBytes: 1024 * 1024 }; 

const consumer = new Consumer(client, topics, options); 
const offset = new Offset(client); 

consumer.on('message', function (message) { 
    console.log(JSON.stringify(message.value)); 
    console.log("Value: %j", message.value); 
    console.log("Value: %o", message.value); 
    console.log('Value: ' + util.inspect(message.value, 10)); 
    console.log(util.inspect(message.value, {showHidden: false, depth: null})); 
}); 

consumer.on('error', function (err) { 
    console.log(err); 
}); 

私は同じ結果を返すハンドラでみてくださいすべての方法:[Objectオブジェクト]

答えて

0

あなたのプロデューサーのメッセージは、おそらくの値は持っている必要があります:

JSON.stringify(message) 
関連する問題