首页 > 其他分享 >graylog MessageInput 简单说明

graylog MessageInput 简单说明

时间:2022-10-08 13:07:11浏览次数:66  
标签:java graylog2 MessageInput server 626be1f0d80506705b5ba41fbea33c2ec0164bc0 grayl

input 是graylog 处理消息的核心,内部对于网络的处理是基于了netty 框架,消息的核心基类是MessageInput

基类的能力

如下图,包含了基本常用的配置,状态,以及input 节点信息,同时还包含input 组件的静态资源,以及contenpack (后续说明)

每个input 会包含一个transport,知道基于那种通道处理消息,对于消息的处理包含了processRawMessage 方法,数据都是放到

InputBuffer 中的,MessageInput 包含了生命周期的能力,stop,launch,checkConfiguration,terminate,配置管理,以及contentpack

的配置,同时还有一个比较重要的编码器,知道如何处理消息的,消息处理比较依赖InputBuffer 这个比较重要

graylog MessageInput  简单说明_java

 

 

实现子类

参考下图,包含了不少常用的实现

graylog MessageInput  简单说明_java_02

 

 

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​

标签:java,graylog2,MessageInput,server,626be1f0d80506705b5ba41fbea33c2ec0164bc0,grayl
From: https://blog.51cto.com/rongfengliang/5737215

相关文章

  • C#一个简单的解析csv文件的方法
    可以将csv转成具体的类型对象,没有用序列化,需要传入转成函数手动编写类型转换代码,代码比较简单publicclassModel{publicint序号{get;set;}......
  • 力扣599(java&python)- 两个列表的最小索引总和(简单)
    题目:假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐......
  • xm-select简单使用一例
    HTML<divid="admin_ids"class="xm-select-demo"></div><scriptsrc="/Public/js/xm-select.js"></script><script> varadmin_ids=xmSelect.render({ el:'#adm......
  • voltus的IR drop分析(简单流程)
    一:文件准备voltus的环境文件配置1:pgv库配置pgv库分别配置std库;mem库;IP库配置库命令:libgen_stdcell.tclread_lib-lefset_pg_library_mode\ -ground_pins *......
  • 简单入门猜数字游戏
    #include<stdio.h>#include<stdlib.h>#include<time.h>voidmenu(){ printf("**********************************************\n"); printf("*** 1.开始游戏 ......
  • 简单理解slot算法和shadow DOM
    阅读完这篇博客你会有以下收获:slot算法是什么?shadowDOM是什么?vueslot机制与w3cwebcomponent规范的shadowDOM渲染结果有何异同?slot算法Theslottingalgorithmassign......
  • Linux下简单命令
    一、如何解压缩文件1、.tar用tar–xvf解压2、.gz用gzip-d或者gunzip解压3、.tar.gz和.tgz用tar–xzf解压4、.bz2用bzip2-d或者用bunzip2解压5、.tar.bz2......
  • 使用spring security 简单步骤
    1.添加springsecurity依赖,即在配置文件中添加依赖。2.添加springsecurity配置文件,spring-security.xml;3.在web.xml加载springsecurity配置文件及springSecurity......
  • 在PE文件中简单注入代码,实现在启动前弹窗
    获得的新知识:1、kernel32.dll,user32.dll,ntdll.dll等一些dll在同一个PC环境下的映射到虚拟内存基址是一样的。2、在win8以上系统上,更改PE文件的入口点要大于SizeOfHeaders......
  • 基于jprofiler 的一个简单dremio 查询处理学习
    一个dremio查询简单调用链的说明参考命令arthaswatchwatchcom.dremio.sabot.exec.fragment.FragmentExecutor$AsyncTaskImplrun'{params,target,returnObj,throwExp......