贵阳达内教育IT培训机构
学校服务热线全国服务热线:400-6136-679

贵阳疫情后大数据培训哪家好

  贵阳疫情后大数据培训哪家好---小编为您推荐达内教育

  贵阳达内教育,美国上市公司,一家专业从事成人IT培训机构,教学以实战性,专业性为主体,让达内学子轻松就业,挑战高薪不再是梦想.

贵阳疫情后大数据培训哪家好

  众所周知,无论是Kafka还是RocketMQ,每一个主题下都有几个分区(RocketMQ叫队列),如果消息被分配到不同的分区,那么Kafka就不能增加消息的消费顺序,因为每一个分区都分配给一个消费者,此时无法增加消费者的消费顺序,所以如果需要进行消息有消费顺序,可以在生产端指定这类消息的key,这类消息都是用相同的key发送的,kafka会根据key哈希取模选择其中一个分区进行存储,因为一个分区只能由一个消费者监控消费,所以此时消息就有了消息消费的顺序。
  生产端
  但是上述情况只能在正常情况下增加顺序消息,但是发生故障后,就不能增加消息的顺序了,我总结以下两点:
  1.当生产端是异步发送时,此时有消息发送失败,如您异步发送1,2,3消息,2消息发送异常重试发送,此时顺序混乱;
  2.当Broker停机出现问题时,生产端可能会将顺序消息发送到不同的分区,然后短期消息顺序不一致。
  针对以上两点,生产端必须增加单线程同步发送,这很容易解决。针对第二点,为了实现严格的消息顺序,需要增加集群在集群出现故障时立即不可用,或者主题做成单分区,但这样做大大牺牲了集群的高可用性,单分区的集群性能也会大大降低。
  针对以上第二点,我们来盘点一下Kafka集群中哪些意外情况会打乱消息的顺序。
  1.分区变更。
  假设集群中有两个分区的主题A,生产端需要向分区1发送三条顺序消息。我们都知道生产端是根据消息Key取模计算决定消息发送到哪个分区的。如果在生产端发送第三条消息之前,主题A增加了一个分区,生产端根据Key取模得到的分区号就不一样了。第三条消息路由到其他分区,结果这三条顺序消息不在同一个分区,此时无法增加这三条消息的消费顺序。
  2.分区不变。
  分区单副本。
  假定此时集群有两个分区的主题A,副本因子为1,生产端需要向分区1发送三条顺序消息,前两条消息已经成功发送到分区1,此时分区1所在的broker挂了(因为副本因子只有1,所以会导致分区1不可用),当生产端发送第三条消息时,发现分区1不可用,就会导致发送失败,然后尝试重试发送,如果此时分区1还没有恢复可用性,此时生产端将消息路由到其他分区,导致这三条消息不在同一分区。
  分区多副本。
  对于分区单副本的情况,我们自然会想到,将分区设置为多副本不能避免这种情况吗?在多副本的情况下,发送端同步发送,acks=all,即确保所有消息同步到所有副本,然后返回发送成功,确保所有副本都在ISR列表中。如果此时其中一个broker停机,不会导致分区不可用,似乎确实避免了分区单副本分区不可用导致消息路由到其他分区的情况。
  但是我想说的是,还有一个极端的现象会发生。当一个broker停机时,这个broker上的leader副本是不可用的。此时,controller将在该分区进行leader选举。在选举过程中,分区leader不可用,生产端会短暂报告noleader警告。此时,生产端也可能通过路由到其他分区。
  想了解具体详情可咨询在线客服或拨打400热线!

尊重原创文章,转载请注明出处与链接:http://news.peixun360.com/887490/ 违者必究! 以上就是 贵阳达内教育IT培训机构 小编为您整理 贵阳疫情后大数据培训哪家好 的全部内容。

版权所有:培训指南(www.peixun360.com) 技术支持:培训指南网

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6136-679