gpt4 book ai didi

java - 通过tcp将json发送到logstash,保持连接打开,从不显示

转载 作者:行者123 更新时间:2023-12-01 10:07:30 29 4
gpt4 key购买 nike

下面的代码在一个线程中运行,从队列中取出消息,并将它们发送到logstash。我有一个单元测试,证明 json(消息的内容)已进入套接字并到达另一端。

但是,当我将其指向实际的 Logstash 时,什么也没有出现。我可以“nc”相同的内容,它就会显示出来。当然,nc会在发送完一条消息后关闭连接。如果我们失去连接,重新连接会有点复杂。

logstash 配置非常简单:

input {
tcp {
port => 9191
codec => json
}
}
output {
stdout {
codec => rubydebug
}
}


while (true) {
byte[] message = messages.take();
executor.getWithRetry(() -> {
try {
if (socket == null) {
socket = new Socket(sinkAddress, port);
}
socket.getOutputStream().write(message);
return null;
} catch (IOException e) {
socket.close();
socket = null;
throw e;
}
}).join();
}

最佳答案

确保您在消息末尾发送换行符。我发现即使从 Windows 盒子发送“\n”到 Linux 上运行的 Logstash 也能正常工作。

关于java - 通过tcp将json发送到logstash,保持连接打开,从不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346840/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com