Java 如何为嵌入式Flume代理实现自定义接收器?
我正在构建一个spring boot独立应用程序,该应用程序需要使用来自远程服务器的消息,并将它们写入Java 如何为嵌入式Flume代理实现自定义接收器?,java,flume,Java,Flume,我正在构建一个spring boot独立应用程序,该应用程序需要使用来自远程服务器的消息,并将它们写入Syslog服务器。我正在使用Flume嵌入式代理可靠地记录消息。但我得到以下错误 原因:org.apache.flume.FlumeException:组件类型 com.security.flume.sink.SyslogSink不在允许的类型中 [AVRO]在 org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.checkAl
Syslog服务器
。我正在使用Flume嵌入式代理可靠地记录消息。但我得到以下错误
原因:org.apache.flume.FlumeException:组件类型
com.security.flume.sink.SyslogSink不在允许的类型中
[AVRO]在
org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.checkAllowed(EmbeddedAgentConfiguration.java:308)
~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]at
org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.validate(EmbeddedAgentConfiguration.java:182)
~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]at
org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.configure(EmbeddedAgentConfiguration.java:199)
~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]at
org.apache.flume.agent.embedded.EmbeddedAgent.doConfigure(EmbeddedAgent.java:151)
~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]at
org.apache.flume.agent.embedded.EmbeddedAgent.configure(EmbeddedAgent.java:98)
~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]
根据文档嵌入式代理
仅支持Avro接收器
。这是否意味着我们甚至不能编写自定义水槽?
我对水槽相当陌生。我非常感谢你在这个问题上的帮助
谢谢 这意味着对于嵌入式代理,您可以使用
AvroSink
作为自定义接收器。但是,您可以使用一些技术使用自定义组件从外部源收集数据:
- 创建一个自定义客户端,该客户端能够与先前版本中存在的Flume源建立通信,如
或AvroSources
SyslogTcpSource
- 创建自定义水槽源,通过IPC或RPC协议与先前存在的客户端直接通信