Я использую kafka-node для своего сервера node.js — для подключения к темам kafka. . В их API есть функция обратного вызова:
consumer.on('message', function (message) {
console.log(message);
});
для потребления сообщений, когда они прибыли.
Интересно, могу ли я добавить аргумент в эту функцию обратного вызова, и как это сделать, поскольку я не тот, кто вызывает ее, когда приходит сообщение.
Чтобы быть более конкретным, я хочу отправить ожидаемый идентификатор и сравнить его с идентификатором потребляемого сообщения:
consumer.on('message', function (message, id) {
if (id == message.id)
console.log(message);
});
EDIT: Это фрагмент кода большего размера. Полный поток это:
- Пользователь запрашивает http-запрос с сервера node.js.
- HTTP-запрос GET активируется на сервере node.js.
- Производитель kafka отправляет сообщение (с уникальным идентификатором) во внешнюю систему и ждет ответа.
- ответ получен потребителю kafka. Полученный идентификатор сообщения сравнивается с ожидаемым идентификатором - если он равен - возвращает сообщение как http-ответ.
Учтите, что несколько HTTP-запросов на получение могут быть получены параллельно.
id == message.id
всегда будетtrue
. Так что именно вы ожидаете здесь? - person Oxi   schedule 14.06.2016