在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Kafka消息的分发流程是什么?使用kafka向指定Topic发送消息时,如果该Topic具有多个partition,无论消费者有多少,最终都会保证一个partition内的消息只会被一个Consumer group中的一个Consumer消费,也就是说同一Consumer group中的多个Consumer自动会起到负载均衡的效果。
Kafka消息的分发介绍:
• Producer客户端负责消息的分发
• kafka集群中的任何一个broker都可以向producer提供metadata信息,这些metadata中包含”集群中存活的servers列表”、“partitions leader列表”等信息;
• 当producer获取到metadata信息之后, producer将会和Topic下所有partition leader保持socket连接;
• 消息由producer直接通过socket发送到broker,中间不会经过任何”路由层”。事实上,消息被路由到哪个partition上由producer客户端决定,比如可以采用”random””key-hash””轮询”等。
• 如果一个topic中有多个partitions,那么在producer端实现”消息均衡分发”是必要的。
• 在producer端的配置文件中,开发者可以指定partition路由的方式。
• Producer消息发送的应答机制
设置发送数据是否需要服务端的反馈,有三个值0,1,-1
– 0: producer不会等待broker发送ack
– 1: 当leader接收到消息之后发送ack
– -1: 当所有的follower都同步消息成功后发送ack
request.required.acks=0
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
零基础Java在线学习方式有哪些?
零基础Java在线学习方式有哪些?总结起来,基本上就是四种方式,即多阅读相关书籍,观看学习视频,实战练习敲代码,与在线老师交流沟通。无论是在线自学也好,还是报线上的培训班,最有效的Java学习方式,也就是以上这些。下面小编来详细为大家讲解Java在线学习具体要怎么做。
5463
2019-09-29 10:31:58
MySQL数据库基础知识汇总梳理
本文对MySQL数据库基础知识进行了汇总和梳理,主要内容有认识数据库、常见数据库排行榜、SQL的概念以及DDL操作数据库。希望大家看完之后,能够能够理解数据库的概念,并且能够使用SQL语句操作数据库。
5671
2020-07-03 15:02:31
Java是什么?有哪些特点?
Java是一门高级程序设计语言,从1995年被发布,到今天已经有25年的历史了。它的一大特点是跨平台,可运行于不同的操作系统,如Windows,Mac OS,以及多种UNIX版本的系统。根据Java的不同用途,可分为三个版本,分别是JavaSE、JavaEE以及JavaME。下面我们一起来深入了解一下Java这门编程语言。
4737
2020-08-07 14:53:47
Java程序的开发与运行原理解析
可能刚刚接触编程的初学者会发现,编写一个Java程序其实很简单,但是Java程序的运行过程却是非常复杂的。关于Java程序工作原理这部分知识,虽然不要求编程学习者完全掌握,你但是至少需要了解它的大致过程。下面小编将好好介绍一下Java程序的开发与运行原理,大致分为以下三步:编写源文件、编译以及运行。
4545
2020-08-12 16:59:55
Spring框架实现依赖注入操作步骤解析
Dependency Injection是spring框架核心 ioc 的具体实现。程序在编写时通过控制反转把对象的创建交给了spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系但不会消除,坐等框架把持久层对象传入业务层而不用我们自己去获取。
4022
2021-05-24 11:31:52