यहां एक उदाहरण है कि हम एक समान उपयोग मामले के लिए क्या कर रहे हैं, जहां हम आपकी स्कीमा के अनुकूल अनुकूलित एक अन्य कतार (अमेज़ॅन किनेसिस) में एवरो रिकॉर्ड भेजते हैं। हम इसे node-avro-io 0.2.0 और स्ट्रीम-टू-मेरी 2.0.2 के साथ उपयोग कर रहे हैं।
var avro = require('node-avro-io');
var toArray = require('stream-to-array');
var schema = {
"namespace": "com.company.wr.messages",
"type": "record",
"name": "Log",
"fields": [
{"name": "timestamp", "type": "long"},
{"name": "source", "type": "string"},
{"name": "version", "type": "string"},
{"name": "ipAddress", "type": "string"},
{"name": "name", "type": "string"},
{"name": "level", "type": "string"},
{"name": "errorCode", "type": "string"},
{"name": "message", "type": "string"}
]
};
var writer = new avro.DataFile.Writer(schema, "snappy");
toArray(writer, function(err, arr) {
var dataBuffer = Buffer.concat(arr);
// Send dataBuffer to Kafka here
});
var record = {
"timestamp": 123,
"source": "example.com",
"version": "HTTP 1.1",
"ipAddress": "123.123.123.123",
"name": "Jim",
"level": "INFO",
"errorCode": "200",
"message": "foo"
};
writer.append(record).end();
नोड एवरो-कब के लिए उदाहरण, लेखन के समय, serializing/फाइल सिस्टम पर एवरो फ़ाइलों deserializing के लिए कर रहे हैं। स्ट्रीम-आधारित नोड-एवरो-आईओ पैकेज से Buffer
प्राप्त करने के लिए यह उदाहरण स्ट्रीम-टू-सर पैकेज को शॉर्टकट के रूप में उपयोग करता है। Buffer
आपके कफका निर्माता में संदेश के रूप में आपकी कतार में भेजा जा सकता है।
कुछ अन्य node.js पैकेज, जैसे avronode और Collective's node-avro, सी ++ लाइब्रेरी के लिए रैपर हैं। मुझे इन पैकेजों के साथ ज्यादा सफलता नहीं मिली। यहां एक टीएल है: नोड-एवरो के एवरो सी ++ लाइब्रेरी इंस्टॉलेशन निर्देशों के लिए डॉ (इसके लिए एक .deb पैकेज बनाना)। यह किसी भी सी ++ रैपर पैकेज के साथ मदद कर सकता है।
sudo apt-get install -y libboost-all-dev cmake checkinstall
ssh clone [email protected]:apache/avro.git
cd avro
git checkout release-1.7.7
cd lang/c++
cmake -G "Unix Makefiles"
sudo checkinstall -y \
--install=no \
--pkgname="avro-cpp" \
--pkgrelease="1.7.7" \
--maintainer="[email protected]" \
--addso=yes
कलेक्टिव के नोड एवरो के लिए, मैं Ubuntu 14.04 पर bin/install-and-run-tests
स्क्रिप्ट से export CXXFLAGS="-fcxx-exceptions"
लाइन को हटाने के लिए किया था।
शानदार। मुझे जिस चीज की जरूरत थी। धन्यवाद! – N3da