当前位置: 首页 > 软件库 > 大数据 > 数据处理 >

gohangout

golang 版本的仿 Logstash 应用
授权协议 MIT
开发语言 Google Go
所属分类 大数据、 数据处理
软件类型 开源软件
地区 国产
投 递 者 牟正真
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

golang 版本的 hangout,有效缓解内存问题。

hangout 是一款仿 Logstash 的应用,用 java 实现了 Logstash 的几个常用 input/filter/output,用于提升数据处理效率。

安装

可以从源码编译, 或者是直接下载二进制可执行文件

从源码编译

使用 go module 管理依赖. 直接 make 就可

make

为避免编译后gohangout在docker容器中无法正常启动,推荐使用完整编译命令进行编译,如:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 make

下载编译后二进制文件

https://github.com/childe/gohangout/releases 直接下载

go get

go get github.com/childe/gohangout

运行

gohangout --config config.yml

日志

日志模块使用 github.com/golang/glog , 几个常用参数如下:

  • -logtostderr 日志打印出标准错误

  • -v 5 设置日志级别. 我这边一般设置到 5 , 数字越大, 日志级别越详细.

pprof debug

  • -pprof=true (默认是不开启 pprof的)

  • -pprof-address 127.0.0.1:8899 pprof 的http地址

多线程处理

默认是一个线程

--worker 4

使用四个线程(goroutine)处理数据. 每个线程拥有自己的filter, output. 比如说translate filter, 每个线程有自己的字典, 他们占用多份内存. elasticsearch output也是一样的, 如果每个 elasticsearch 设置了2并发, 那一共就是8个并发.

进一步说明一下为什么添加了这个配置:

最开始是没有这个配置的, 如果需要多线程并发处理数据, 依赖 Input 里面的配置, 比如说 Kafka 配置 topicname: 2 就是两个线程去消费(需要 Topic 有至少2个Partition, 保证每个线程可以消费到一个 Partition 里面的数据).

但是后面出现一些矛盾, 比如说, Kafka 的 Consumer 个数多的情况下, 给 Kafka 带来更大压力, 可能导致 Rebalance 更频繁等. 所以如果 Kafka 消费数据没有瓶颈的情况下, 希望控制尽量少的 Consumer, 后面多线程的处理这些数据.

开发新的插件

 
 相关资料
  • java应该吗 java版本“1.8.0_251”java(TM)SE运行时环境(构建1.8.0_251-b08)java热点(TM)64位服务器虚拟机(构建25.251-b08,混合模式) 和 javac 1.8.0_181 如果不是同一个版本,有什么问题吗?

  • 问题内容: 我的问题与 iTunes Connect 中版本和内部版本号的限制有关。我们只允许3个非负整数,并且内部版本号必须是递增的。 我正在设置一个 Jenkins 作业,以将我的构建自动上传到 iTunes Connect, 以便测试人员可以下载它们。 问题: 我们如何确保递增的内部版本号?即使我们在每次提交之前都在Xcode中手动更改了它(这似乎是错误的),也有多个开发人员在项目上工作,所

  • translated_page: https://github.com/PX4/Devguide/blob/master/en/simulation/sitl.md translated_sha: 95b39d747851dd01c1fe5d36b24e59ec865e323e 软件在环仿真 (SITL) 软件在环仿真是在主机上运行一个完整的系统并模拟自驾仪。它通过本地网络连接到仿真器。 设置成如

  • 本文向大家介绍java仿windows记事本功能完整版,包括了java仿windows记事本功能完整版的使用技巧和注意事项,需要的朋友参考一下 最近学了Java编程,就编了仿windows系统下的记事本练练手,这个记事本实现了windows系统下的大部分功能,只有很少的部分没有实现,比如撤销命令的不完美,这是本人的能力有限,还有那些JMenuItem的是否可用问题,这只是本人比较偷懒,无心再去实现

  • 我正在试着在Proguard打开的情况下测试Android应用程序的发布版本。我已经为测试依赖项创建了其他Proguard规则文件,该文件包含在发布规则文件中。 一切编译都很好,但在运行时失败。 我正在使用Espresso进行测试,仪表运行器在中定义 是否有机会为预发布版本运行测试?我从五月份就找到了这个话题,看起来这是不可能的。对我来说,这看起来只是错误的Proguard配置(缺少方法),但这行

  • 我已经使用logstash处理了一个文件,并将其推到弹性搜索中。但是,我必须对logstash conf文件进行一些更改,并需要再次处理日志文件。我删除了es上的索引并重新启动了日志存储。我在弹性搜索中没有看到数据,看起来文件没有被处理。 知道我错过了什么吗? 我没有看到创建任何索引,es中没有数据。我多次尝试了这些步骤。

  • 我已经在本地构建了android-12.0.0_r2,并试图运行它,但它给出了错误。 构建步骤: $source build/envsetup.sh 午餐aosp_x86_64-eng $ 使 -j32 运行: $仿真器 错误:out/target/product/generic _ arm 64/user data-QEMU . img ':没有这样的文件或目录 即使从android_11复制了