У меня есть 2 сервера, один из которых является сервером пользовательского интерфейса, а другой - сервером Кафки.
Файл javascript на моем сервере пользовательского интерфейса получает данные из файла csv, который я читаю построчно и преобразую в JSON. Мне нужно посылать эти данные построчно в формате JSON на мой сервер-производитель Kafka. для дальнейшей работы. Оба сервера имеют свои собственные выделенные IP-адреса. например сервер кафка имеет 192.168.2.12:9098
reportJSON - это переменная, по которой я получаю данные csv в js-файле UI-сервера.
Когда я пытаюсь запустить файл js сервера пользовательского интерфейса, он показывает ошибку:
2018-05-09T15: 18: 56.147Z - ошибка: uncaughtException: io.connect не
дата функции = ср. 09 мая 2018 15:18:56 GMT + 0000 (UTC)
UI-соединение внутри файла JavaScript:
var io = require('socket.io');
var socket = io.connect("http://192.168.2.12:9098");
socket.on('connect', function () {
console.log('Connection Established');
socket.emit('csvDataFromUI', function (reportJSON) {
console.log("Data inside the csvUpload Handler is = " + reportJSON);
});
});
код внутри файла javaScript производителя kafka:
var http = require('http');
var app = express();
var host = process.env.HOST || config.host;
var port = process.env.PORT || config.port;
console.log("STARTING EVENT SERVER PRODUCER");
var server = http.createServer(app).listen(port, function () { });
server.timeout = 240000;
var io = require('socket.io').listen(server);
io.on('connection', function (socket) {
socket.on('csvDataFromUI', function(data) {
console.log("Data in kafka is = " + data);
});
//socket.emit('csvDataFromUI', payloadData);
});
/ ********************************************** *************************** /
Новый код:
после этого: https://www.npmjs.com/package/kafka
UI сервер ui.js
создание его как производителя:
var kafka = require('kafka');
var host = '192.168.2.12';
var port = 9098;
producer = new kafka.Producer({
host: host,
port: port,
topic: 'Postings',
partition: 0
});
producer.connect(function(reportJSON) {
console.log("rportJSON = " + reportJSON);
producer.send(reportJSON);
});
Кафка сервер kafkaProducer.js:
var kafkadata = require('kafka');
console.log("STARTING PRODUCER");
var consumer = new kafkadata.Consumer({
// these are the default values
host: '192.168.2.12',
port: 9098 ,
pollInterval: 2000,
maxSize: 1048576 // 1MB
})
consumer.on('message', function(topic, message) {
console.log(message)
})
consumer.connect(function() {
consumer.subscribeTopic({name: 'Postings', partition: 0})
})
ОШИБКА, которую я получаю на сервере пользовательского интерфейса: ошибка: uncaughtException: подключение
ECONNREFUSED reportJSON = не определено
На сервере Kafka я не вижу ни одной ошибки получения и получения:
ReferenceError: сообщение не определено