【发布时间】:2019-12-30 12:39:20
【问题描述】:
在我的 Storm 拓扑中,我通过 Kafka spout 将大量 JSON 数据传输到 ElasticSearch bolt。
问题是 Apache Storm 使用的 Log4j2 在其配置中为 cluster 和 worker 使用 UDP 协议:
Log4j2/Worker.xml:
<Syslog name="syslog" format="RFC5424" charset="UTF-8" host="localhost" port="514"
protocol="UDP" appName="[${sys:storm.id}:${sys:worker.port}]" mdcId="mdc" includeMDC="true"
facility="LOCAL5" enterpriseNumber="18060" newLine="true" exceptionPattern="%rEx{full}"
messageId="[${sys:user.name}:${sys:logging.sensitivity}]" id="storm" immediateFail="true"
immediateFlush="true"/>
因此 - 我在提交拓扑时收到下一个错误:
错误无法写入流 UDP:localhost:514 for appender syslog org.apache.logging.log4j.core.appender.AppenderLoggingException:错误 刷新流 UDP:localhost:514
这是因为消息长度。
我想知道是否可以将 Apache Storm Syslog appender 的默认协议从 UDP 更改为 TCP?
【问题讨论】:
标签: tcp udp log4j2 apache-storm syslog