对consumer instance(消费者实例)的思考
来源:互联网 发布:网络直播间策划方案 编辑:程序博客网 时间:2024/06/14 22:36
官网(https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html#plugins-inputs-kafka-consumer_threads)说的要consumer instance,也就是消费者实例,到底是指什么?是指一个logstash进程,还是指logstash中的consumer_threads中的线程数,几个consumer_threads就代表几个消费者实例?如果是后者的话,那在一台机器起多个logstash进程怎么算?我不知道大家是否跟我有一样的疑问?为了回答我自己的疑问,我自己试了一下
测试条件:Kafka集群部署在137/138/139 三台机器上,logstash 部署在另外一台机器91上
Round-1:
Logstash进程数为1,每个logstash的consumer_threads 为1
启动一个logstash进程之后,观察进程数,如下:
对应的
Round-2:
Logstash进程数为3,每个logstash的consumer_threads 为1
启动三个logstash进程之后,观察进程数,如下:
对应的:
本例中,当logstash进程数为3时,实质上6个partition只被分别绑定在2个consumer上。也就是说3个logstash进程,只有两个被当成了consumer,还有一个应该是空闲的。
Round-3:
修改logstash的配置,设为consumer_threads=>6。
只起一个logstash进程,
对应的,发现有6个不同的consumer instance,即6个不同的消费者实例。如下:
可以得到下面几点:
1) 当consumer_theards=1的时候,一个logstash进程就是一个consumer instance;理论上,可以在一台机器上起多个logstash进程,至于有几个consumer(一个logstash进程就是一个consumer)被绑定到partition,这是随机事件,有可能只有一个consumer被绑定,其余的consumer都处于空闲状态。
2) 当consumer_threads=n (n>1)时,若起一个logstash进程,那就意味着有n个consumer。
3) 笔者试过(http://blog.csdn.net/nyyjs/article/details/72770595),在三台机器上分别起一个logstash,每个logstash的consumer_threads设为2,然后取消费6个partiton。即6个不同的consumer去消费6个partition,结果也达到目的。很好的保证了一个partition被一个consumer消费,出现partiton数目和consumer数目不对等的情况出现。
4) 同一个logstash进程,其前缀都一样,前缀一样的情况下,不同的后缀表示该进程下的consumer thread数目。如最后一个例子,前缀都是”***b766”,表示只有一个这样的logstash进程,最后的序号0-5表示6个不同的线程数,也就是我们在配置中设置的consumer_threads=>6
- 对consumer instance(消费者实例)的思考
- 生产者消费者问题(Producer-consumer problem)
- 生产者-消费者问题(producer-consumer-problem)
- 生产者消费者模式(Producer-Consumer)
- spring-cloud-consumer消费者(四)
- 一个python写的生产者(Producer)和消费者(Consumer)问题
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境(3,消费者consumer工程构建)
- Kafka系列4-基本概念及消费者组(Consumer Group)的理解
- Producer-Consumer 生产者,消费者
- kafka consumer demo 消费者
- 《RocketMq》五、Consumer消费者
- 多线程设计模式:Producer-Consumer生产者-消费者模式的C++
- 对思考的思考
- 线程问题:生产者(Producer)与消费者(Consumer)
- flex中的Producer(生产者)/Consumer(消费者)
- 生产者-消费者(producer-consumer)问题(二)
- C# Producer Consumer (生产者消费者模式)demo
- C# Producer Consumer (生产者消费者模式)demo
- 使用@ResponseBody的一些问题以及解决方法
- 【Android】【Activity生命周期】Activity生命周期
- 关于Unix第二卷60页的mq_open 函数的参数非法问题
- jquery 判断input框中不能输入特殊字符(#¥%……&*@)
- spring注解大全
- 对consumer instance(消费者实例)的思考
- ZooKeeper 基础知识、部署和应用程序
- 对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
- Friday the Thirteenth-section1.1
- 《Oracle Database 11gR2性能调整与优化》第一节
- C++中的虚函数的理解和使用
- MQ学习(一)--- JMS了解
- node.js 使用域账号登陆电脑 同一域 可以访问调试项目
- query.list()和query.iterate()区别