graylog MessageInput 简单说明
input 是graylog 处理消息的核心,内部对于网络的处理是基于了netty 框架,消息的核心基类是MessageInput
基类的能力
如下图,包含了基本常用的配置,状态,以及input 节点信息,同时还包含input 组件的静态资源,以及contenpack (后续说明)
每个input 会包含一个transport,知道基于那种通道处理消息,对于消息的处理包含了processRawMessage 方法,数据都是放到
InputBuffer 中的,MessageInput 包含了生命周期的能力,stop,launch,checkConfiguration,terminate,配置管理,以及contentpack
的配置,同时还有一个比较重要的编码器,知道如何处理消息的,消息处理比较依赖InputBuffer 这个比较重要
实现子类
参考下图,包含了不少常用的实现
MessageInput 的使用
InputLauncher,InputSetupService,Transport ,InputRegistry 都会使用到MessageInput,InputLauncher 是如何启动MessageInput的(核心是编码器以及通道)
InputSetupService 对于MessageInput 状态的一个管理,也就是我们界面上的操作,Transport 需要依赖MessageInput 知道如何创建通道,InputRegistry 类似input
的仓库,我们可以知道当前存在的input 以及运行情况(实际上就是一个内存存储)
说明
以上是对于MessageInput 的简单说明,对于消息处理会单独说明
参考资料
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog2/shared/initializers/InputSetupService.java
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog2/shared/inputs/InputLauncher.java
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog2/plugin/inputs/MessageInput.java
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog2/shared/buffers/InputBufferImpl.java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-10-03 drill 学习 三 drill 参考架构介绍一
2017-10-03 CoreDNS kubernetes 安装使用