开发者社区> 问答> 正文

kafka里的consumer作用是什么?

kafka里的consumer作用是什么?

展开
收起
7大帅 2021-12-09 21:05:06 516 0
1 条回答
写回答
取消 提交回答
  • customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是 pull还pusho在这方面,Kafka遵循了一种大部分消息系统的传统设计: producer将消息推送到broker, consumer从broker拉取消息。

    push模式,将消息推送到下游的consumero这样做有好处也有坏处:由broker 决定消息推送的速率,对于不同消费速率的consumer就不太好处理了。消息系统 都致力于让consumer以最大的速率最快速的消费消息,但不幸的是,push模式 下,当broker推送的速率远大于consumer消费的速率时,consumer恐怕就要崩 溃了。最终Kafka还是选取了传■统的pull模式。

    Pull模式的另外一个好处是consumer可以自主决定是否批量的从broker拉取数 据。Push模式必须在不知道下遊consumer消费能力和消费策略的情况下决定是 立即推送每条消息还是缓存之后批量推送。如果为了避免consumer崩溃而釆用较 低的推送速率,将可能导致一次只推送较少的消息而造成浪费。Pull模式下, consumer就可以根据自己的消费能力去决定这些策略。

    Pull有个缺点是,如果broker没有可供消费的消息,将导致consumer不断在循环 中轮询,直到新消息到t达。为了避免这点,Kafka有个参数可以让consumer阻 塞知道新消息到达(当然也可以阻塞知道消息的数量达到某个特定的量这样就可以 批量发送)。

    2021-12-09 21:43:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载