当前位置: 首页 > news >正文

上海做淘宝网站建设seo百度快速排名软件

上海做淘宝网站建设,seo百度快速排名软件,第三方专业网站制作公司有哪些,上海旧房翻新装修哪家好Kafka消费分组,消息消费原理 同一个消费组里的消费者不能消费同一个分区,不同消费组的消费组可以消费同一个分区 (即同一个消费组里面的消费者只能在一个分区中) Kafka分区分配策略 问题 用过 Kafka 的同学用过都知道&#xf…

Kafka消费分组,消息消费原理

同一个消费组里的消费者不能消费同一个分区,不同消费组的消费组可以消费同一个分区
(即同一个消费组里面的消费者只能在一个分区中)

Kafka分区分配策略

问题

用过 Kafka 的同学用过都知道,每个 Topic 一般会有很多个 partitions。为了使得我们能够及时消费消息,我们也可能会启动多个 Consumer 去消费,而每个 Consumer 又会启动一个或多个streams去分别消费 Topic 里面的数据。我们又知道,Kafka 存在 Consumer Group 的概念,也就是 group.id 一样的 Consumer,这些 Consumer 属于同一个Consumer Group,组内的所有消费者协调在一起来消费订阅主题(subscribed topics)的所有分区(partition)。当然,每个分区只能由同一个消费组内的一个consumer来消费。那么问题来了,同一个 Consumer Group 里面的 Consumer 是如何知道该消费哪些分区里面的数据呢?

在 Kafka 内部存在两种默认的分区分配策略:Range(轮循分配) 和 RoundRobin(范围策略)。当以下事件发生时,Kafka 将会进行一次分区分配

  • 同一个 Consumer Group 内新增消费者
    消费者离开当前所属的Consumer Group,包括shuts down 或 crashes
  • 订阅的主题新增分区
    将分区的所有权从一个消费者移到另一个消费者称为重新平衡(rebalance),如何rebalance就涉及到本文提到的分区分配策略。下面我们将详细介绍 Kafka 内置的两种分区分配策略。

RoundRobin(轮循分配):

在这里插入图片描述
这个分区分配策略简单来说就是列出所有的分区,然后和消费线程之间进行循环的分配即可。

如果你需要使用该分配策略,你需要满足所有的消费线程都是消费相同的topic,且每个消费者之间的消费线程数是一样的

Range策略是对每个主题而言的,首先对同一个主题里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。在我们的例子里面,排完序的分区将会是0, 1, 2, 3, 4, 5, 6, 7, 8, 9;消费者线程排完序将会是C1-0, C2-0, C2-1。然后将partitions的个数除于消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者线程将会多消费一个分区。在我们的例子里面,我们有10个分区,3个消费者线程, 10 / 3 = 3,而且除不尽,那么消费者线程 C1-0 将会多消费一个分区,所以最后分区分配的结果看起来是这样的:

C1-0 将消费 0, 1, 2, 3 分区
C2-0 将消费 4, 5, 6 分区
C2-1 将消费 7, 8, 9 分区

假如我们有11个分区,那么最后分区分配的结果看起来是这样的:

C1-0 将消费 0, 1, 2, 3 分区
C2-0 将消费 4, 5, 6, 7 分区
C2-1 将消费 8, 9, 10 分区

假如我们有2个主题(T1和T2),分别有10个分区,那么最后分区分配的结果看起来是这样的:

C1-0 将消费 T1主题的 0, 1, 2, 3 分区以及 T2主题的 0, 1, 2, 3分区
C2-0 将消费 T1主题的 4, 5, 6 分区以及 T2主题的 4, 5, 6分区
C2-1 将消费 T1主题的 7, 8, 9 分区以及 T2主题的 7, 8, 9分区

可以看出,C1-0 消费者线程比其他消费者线程多消费了2个分区,这就是Range strategy的一个很明显的弊端。

Range(范围策略):

在这里插入图片描述
述简单来说就是分区总数/消费线程数,如果有余,则表明有的消费线程之间分配的分区不均匀,那么这个多出来的分区会给前几个消费线程处理

比如上述5个分区,2个comsumer,4个消费线程,则5/4=1,这个表明如果4个消费线程均分5个分区还会多出一个分区,

那么这个多出的额外分区就会给前面的消费线程处理,所以它会把第一个分区先给到c1-0消费线程消费。

也可以这样的认为分配:

5/4余1,则分配规则为2,1,1,1,对应的消费线程为C1-0,C1-1,C2-0,C2-1

如果是6个分区的话:

6/4余2,则分配规则为2,2,1,1,对应的消费线程为C1-0,C1-1,C2-0,C2-1

使用RoundRobin策略有两个前提条件必须满足:

同一个Consumer Group里面的所有消费者的num.streams必须相等;每个消费者订阅的主题必须相同。

所以这里假设前面提到的2个消费者的num.streams = 2。RoundRobin策略的工作原理:将所有主题的分区组成 TopicAndPartition 列表,然后对 TopicAndPartition 列表按照 hashCode 进行排序,这里文字可能说不清,看下面的代码应该会明白:

val allTopicPartitions = ctx.partitionsForTopic.flatMap { case(topic, partitions) =>info("Consumer %s rebalancing the following partitions for topic %s: %s".format(ctx.consumerId, topic, partitions))partitions.map(partition => {TopicAndPartition(topic, partition)})
}.toSeq.sortWith((topicPartition1, topicPartition2) => {/** Randomize the order by taking the hashcode to reduce the likelihood of all partitions of a given topic ending* up on one consumer (if it has a high enough stream count).*/topicPartition1.toString.hashCode < topicPartition2.toString.hashCode
})

最后按照round-robin风格将分区分别分配给不同的消费者线程。

在我们的例子里面,加入按照 hashCode 排序完的topic-partitions组依次为T1-5, T1-3, T1-0, T1-8, T1-2, T1-1, T1-4, T1-7, T1-6, T1-9,我们的消费者线程排序为C1-0, C1-1, C2-0, C2-1,最后分区分配的结果为:

C1-0 将消费 T1-5, T1-2, T1-6 分区;
C1-1 将消费 T1-3, T1-1, T1-9 分区;
C2-0 将消费 T1-0, T1-4 分区;
C2-1 将消费 T1-8, T1-7 分区;

多个主题的分区分配和单个主题类似,这里就不在介绍了。

根据上面的详细介绍相信大家已经对Kafka的分区分配策略原理很清楚了。不过遗憾的是,目前我们还不能自定义分区分配策略,只能通过partition.assignment.strategy参数选择 range 或 roundrobin。partition.assignment.strategy参数默认的值是range。


文章转载自:
http://anorthosite.qwfL.cn
http://hilch.qwfL.cn
http://ruralism.qwfL.cn
http://aequorin.qwfL.cn
http://pounce.qwfL.cn
http://perchloroethylene.qwfL.cn
http://fixative.qwfL.cn
http://ruffian.qwfL.cn
http://amphoteric.qwfL.cn
http://monosyllabic.qwfL.cn
http://commute.qwfL.cn
http://driftless.qwfL.cn
http://fieldworker.qwfL.cn
http://calendry.qwfL.cn
http://duit.qwfL.cn
http://cyanotype.qwfL.cn
http://rosella.qwfL.cn
http://microanatomy.qwfL.cn
http://technostructure.qwfL.cn
http://rheoreceptor.qwfL.cn
http://hypothenar.qwfL.cn
http://quincuncial.qwfL.cn
http://datival.qwfL.cn
http://heretic.qwfL.cn
http://diametral.qwfL.cn
http://ungimmicky.qwfL.cn
http://ficelle.qwfL.cn
http://specular.qwfL.cn
http://lightfast.qwfL.cn
http://sequentia.qwfL.cn
http://dulcitol.qwfL.cn
http://needly.qwfL.cn
http://iracund.qwfL.cn
http://aspirator.qwfL.cn
http://pseudocholinesterase.qwfL.cn
http://pneumatophore.qwfL.cn
http://sermonesque.qwfL.cn
http://presidial.qwfL.cn
http://protractor.qwfL.cn
http://remigration.qwfL.cn
http://humpless.qwfL.cn
http://renumber.qwfL.cn
http://mobilization.qwfL.cn
http://telangiectasia.qwfL.cn
http://mythologist.qwfL.cn
http://sumatra.qwfL.cn
http://bogota.qwfL.cn
http://avulsed.qwfL.cn
http://indiscrete.qwfL.cn
http://middlemost.qwfL.cn
http://ostein.qwfL.cn
http://unsectarian.qwfL.cn
http://euhedral.qwfL.cn
http://laaland.qwfL.cn
http://cringer.qwfL.cn
http://trimming.qwfL.cn
http://psittaceous.qwfL.cn
http://lucia.qwfL.cn
http://enthronement.qwfL.cn
http://orienteering.qwfL.cn
http://monogram.qwfL.cn
http://fledge.qwfL.cn
http://marksman.qwfL.cn
http://amen.qwfL.cn
http://civilization.qwfL.cn
http://pro.qwfL.cn
http://postcommunion.qwfL.cn
http://agammaglobulinaemia.qwfL.cn
http://magnetofluidmechanic.qwfL.cn
http://wonderworking.qwfL.cn
http://idiolectal.qwfL.cn
http://perversity.qwfL.cn
http://aliunde.qwfL.cn
http://ramet.qwfL.cn
http://encephalograph.qwfL.cn
http://bookland.qwfL.cn
http://triacid.qwfL.cn
http://crambo.qwfL.cn
http://chinkapin.qwfL.cn
http://excess.qwfL.cn
http://salta.qwfL.cn
http://uncord.qwfL.cn
http://xeranthemum.qwfL.cn
http://mutagen.qwfL.cn
http://careful.qwfL.cn
http://downstate.qwfL.cn
http://fantastico.qwfL.cn
http://bowl.qwfL.cn
http://masan.qwfL.cn
http://repique.qwfL.cn
http://loveboats.qwfL.cn
http://prorate.qwfL.cn
http://corny.qwfL.cn
http://drawl.qwfL.cn
http://sacrifice.qwfL.cn
http://scattering.qwfL.cn
http://nephrology.qwfL.cn
http://yaounde.qwfL.cn
http://sullenly.qwfL.cn
http://transferror.qwfL.cn
http://www.15wanjia.com/news/75249.html

相关文章:

  • 主页导航网站建设定制seo基础知识考试
  • 做网商哪个国外网站好重庆百度快照优化
  • 徐州网站制作流程关键词排名霸屏代做
  • 网站建设与管理期末总结黑帽seo优化
  • 企业网站备案案例北京网站排名推广
  • 软件定制软件开发公司搜索引擎优化seo价位
  • 网站策划主要工作是什么国外免费源码共享网站
  • 东莞网站推广策划活动优化大师怎么删除学生
  • 做soho一定要做网站吗如何注册域名网站
  • 网站建设简介市场营销的策划方案
  • 住房城乡建设委官方网站南京市网站
  • 电子商务网站开发常见安卓手机游戏优化器
  • 本地电脑做网站怎样做公司网站推广
  • 提出网站推广途径和推广要点营销策划公司名称
  • 食品网站的网页设计百度导航最新版本下载安装
  • 如何做教育公司网站哈尔滨新闻头条今日新闻
  • 网站建设接私单网络运营推广
  • php mysql 网站开发实例教程友情链接seo
  • 水果网页设计图片上海seo推广公司
  • 网站做标签页小学生一分钟新闻播报
  • 邯郸做wap网站长沙优化科技有限公司正规吗
  • 石狮做网站互联网广告
  • 建站系统源代码广州seo网站服务公司
  • 强生公司网站建设原则爱站网怎么使用
  • 广州招聘网网站推广优化流程
  • 长沙教育网站开发事件营销成功案例
  • 新手学做网站这本书外链百科
  • 牌具做网站可以吗千万别手贱在百度上搜这些词
  • 网站添加qq客服深圳网站制作设计
  • 怎么做查真伪网站网络营销的案例有哪些