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

posted on   荣锋亮  阅读(175)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-10-03 drill 学习 三 drill 参考架构介绍一
2017-10-03 CoreDNS kubernetes 安装使用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示