• 阿星
    2019-11-13
    Kafka的partition和replica搞混了吧? 副本才是实现备份机制的吧,分区是实现了负载均衡和水平扩展
     1
     10
  • Eternal
    2019-11-09
    发布订阅的时候,如果是消费者主动拉去消息,是拉模式,如果是消息中心推送消息给消费者就是推模式。

    推模式:消息中心需要考虑消费者的消费能力,不能把消费者压垮了,站着消息中心的角度,这个样消息中心能控制消费的速度,也能主动调控消息消费的积压,对消息中心是有利的,对消费者是有风险的;

    拉模式:由消费者自己控制自己的消费速度,不用担心自己压力;站在消费者的角度,自己控制消费速度,有多到能力干多大事,自己的风险自己掌控,这样消息中心的消息积压就会存在风险,因为消息消费的速度自己不能控制,很容易造成消息积压,然后消息丢失,或消息中心不可用。

    消息中心是两头都有风险,生产者的生产速度变化,消费者的消费速度变化都会造成消息积压风险,因为消息中心的消息存储能力,通信能力都是由限制的,消息中心是发布订阅模式中最复杂的一部分

    展开
    
     4
  • Devin
    2019-11-16
    文章中 “实现消息的备份,从而保证系统的高可靠。比如,Topic 1 包含两个分区 Partiton-0、Partiton-1,每个分区内容一致实现消息的备份,从而保证系统的高可靠。比如,Topic 1 包含两个分区 Partiton-0、Partiton-1,每个分区内容一致”,这个说法应当是有误的,“实现消息的备份”应该是“副本机制”,假如Topic 1 分区数是 2 ,那么总消息是 Partiton-0 和 Partiton-1 的合集,不是文中说的“每个分区内容一致”

    作者回复: 这里介绍的是分区的功能或作用,不同分区存储不同数据子集,以及不同分区存储相同数据作为数据备份都可以看成是分区的作用

     1
     2
  • 修愿三秋
    2019-11-20
    Broker的数据存储是否溢出和Consumer 消费数据的能力没有什么关系的,俩组件是独立的,互不影响
     1
     1
  • Jackey
    2019-11-06
    Kafka的消费者组有点像思考题提到的订阅者负载均衡,不过应该是分区数大于消费者数才会进行多个消费者消费吧。所以是否可以考虑订阅时不仅仅是指定主题,而是需要指定到具体的分区?
    
     1
  • 陈启明
    2020-01-09
    consumer在监听topic的时候,需要指定topic的partition么?
    
    
  • Jaime
    2019-12-16
    消息模式是没有返回值,如果业务是需要返回值的,是不是只能使用rpc方式来实现? 多谢老师了
    
    
  • 易儿易
    2019-11-29
    Topic模式消息中心存储的消息何时被销毁呢?是消费量=(通过zk确定保持连接的)订阅者数量后自动销毁吗?如果订阅者出现问题消息中心也会超期自动销毁吧?
    
    
  • 没有昵称
    2019-11-23
    思考题: 负载均衡 不能解决消息堆积的问题 多个节点部署相同的代码 都在一个消费者组下 只会有一个节点消费到消息
    解决方法: 创建多个消费者组 通过消费方的业务代码 来控制
    
    
  • _______Harvey凝枫�...
    2019-11-20
    消费组与Broker存储溢出的关系是什么?

    一个消费组中的消费者共同消费主题消息,每个消息只由组内的某个消费者消费;
    那么单个消费者消费能力有限时,难道强制推送给组内的其它消费者?这样不合理吧;
    如果说时不强制推送给组内的其它消费者,那么这个和Broke溢出有什么关系?
    
    
  • 光业
    2019-11-10
    思考题,使用消费者组,分布在不同的节点上
    
    
  • Eternal
    2019-11-09
    Kafka订阅的时候,客户端不需要考虑订阅哪个分区
    当一个消费者组的消费者数量小于分区数量的时候是消费能力不足,该组中的一个消费者会超负载消费,存在挂掉风险
    当一个消费者组的消费者数量大于分区数量的时候是分区的数量不足,该组中的一个消费者会存在空负载的情况,消费资源浪费

    因此,一般一个消费者组的消费者数量和该组订阅的topic的分区数量一致,或者是成倍数。

    成倍数是:
    如果一个topic有3个分区,那么消费者组的消费者可以是,3个,6个,9个,这样一个组中的每个消费者就会均衡
    如果一个消费者组的消费者数量是3个,那么他们订阅的topic的分区数量可以是是,3个,6个,9个,这样一个组中每个消费者消费的分区会均衡

    如果一个消费者组中的消费者数量和组订阅的topic中的分区数量不成倍数,会存在问题:
    当消费者挂掉,或者新的消费者加入组的时候,当分区数量新增或减少的时候,都会触发重平衡,即消费者和分区数量映射的重平衡
    重平衡如果不均衡就会导致消费者负载过高,消费慢,也会造成topic消息积压,所有关键的问题说就是要使消费者和分区怎么均衡映射
    展开
    
    
  • 信xin_n
    2019-11-09
    实现消息的备份,从而保证系统的高可靠。比如,Topic 1 包含两个分区 Partiton-0、Partiton-1,每个分区内容一致,分别存储在 Broker 0 和 Broker 1 上,借此实现了数据备份。
    这个地方图片画错了,两个都是 Partiton-0。老师,请问下,分区是用来负载均衡还是备份,是在配置文件配置具体模式吗?
    
    
  • 开心小毛
    2019-11-07
    每个消费者组才是一份订阅:每个消息会被发放到每一个消费组,每个消费组被不同的应用程序消费互不影响。
    负载均衡是通过在一个主题下创建多个分区实现的,生产者在同一主题下只能选择一个分区投放消息。
    消息备份是通过分区下的replica实现的,所有replica servers都与领导者处于同一数据中心且不分担读写,只起到消息备份的作用。
    
    
  • Geek_e986e3
    2019-11-06
    我的理解是。同一个消费组增加消费者是不是可以认为是消费者的负载均衡
    
    
  • 随心而至
    2019-11-06
    用过Kafka,可以在同一个消费者组下设置多个消费者来解决这个问题。当然这里面会涉及到多个消费者协同的问题,我记得Kafka有个协调器(coordinator)来做这个。
    
    
  • xingoo
    2019-11-06
    消费者负载均衡可以通过消息的多分区实现,比如一个主题有多个分区,那么可以通过创建多个消费者进行并行消费
    
    
  • leslie
    2019-11-06
    不知道为何老师选择kafka:Coding的易读性和易操作以及排错性考虑还是?Kafka其特性是收之后打包,解包是在Cilent端。
         老师今天的问题"单个订阅者的处理能力是有限的,那么能否实现订阅者负载均衡消费呢?又该如何实现呢?"其实老师今天的问题最合适的MQ应当是rocketMQ:阿里共享给开源社区的这款产品,Kafka在高并发的性能上其实还是相对偏弱。
          可能不同的MQ在分布式环节中适用的场景应当是不同的,这就像DB这块-RMDB和NOSQL DB承担的是软件过程中不同的场景而已;kafka和rocket我都学过都简单研究过,自己后续准备用在不同场景下。
    
    
我们在线,来聊聊吧