
Kafka
文章平均质量分 64
关于Kafka的详细技术点,一个专栏帮你拿下!
Be explorer
分享日常学习笔记和实战经验,开源NB
展开
-
Kafka篇——Kafka实战线上问题优化之实现顺序消费,实际开发中的解决方案
然而,需要注意的是,在顺序消费中,单线程的速度可能会比较慢,因此在一些需要高性能的场景下,可能会采用多线程并发消费的方案。Kafka中顺序消费的应用场景主要涉及那些需要保证消息产生顺序和消费顺序一致的业务场景。例如,在订单处理系统中,订单的生成、支付、发货等步骤通常需要按照一定的顺序进行,以确保数据的完整性和一致性。Kafka可以通过设置特定的参数来保证顺序消费,例如设置max.in.flight.requests.per.connection参数为1,可以保证消息按照发送的顺序写入服务器。原创 2024-02-02 16:41:58 · 705 阅读 · 0 评论 -
Kafka篇——Kafka实战线上问题优化之防止消息丢失和消息重复消费,提供真实解决方案
由于生产者端设置了发送消息的ack为1,并且生产者把消息发送到集群并且leader已经拿到消息,正好在返回ack的时候产生了网络波动,生产者拿不到broker返回的ack所以触发了重试机制,又一次给broker发送了这条消息。那么此时消费者就会从broker中poll到两条相同的消息。因为我们把ack设置成1或者-1/all,这样生产者生产的消息发送到broker中,会等待leader或者至少leader和一个副本同步到消息才会返回ack,如果生产者同步消息失败,会进行重试。二、防止消息重复消费。原创 2024-02-02 16:40:55 · 938 阅读 · 0 评论 -
Kafka篇——Kafka集群Controller、Rebalance和HW的详细介绍,保姆级教程!
一、概念在Kafka中,Controller是Kafka集群中的一个角色,负责管理集群的元数据、分区分配、副本管理等功能。Controller的主要职责包括:1. 元数据管理:Controller负责维护Kafka集群的元数据,包括broker的存活状态、分区的分配情况、副本的分配情况等。它通过与Zookeeper进行交互,监控集群中broker的状态变化,并更新集群的元数据。原创 2024-01-17 16:44:11 · 1912 阅读 · 0 评论 -
Kafka篇——SpringBoot中使用Kafka,详细的集成和简单生产消费流程流程,常见消息配置,黄金文档!
一、引入依赖二、配置文件中配置Kafka将来我们的项目大概率不会是会都扮演生产者和消费者两个角色,所以在集成Kafka的时候,生产者的项目中只配置生产者相关的配置即可,消费者项目配置消费者的相关的配置即可三、编写生产者代码为了简化演示,直接将业务层代码写到了控制层,见谅哈!四、编写消费者注意:如果不调用手动提交offset这个方法,那么会产生消息重复消费的问题五、调用生产者的接口,观察消费者是否正常消费到消息1、调用生产者接口2、观察控制台消费者。原创 2024-01-17 16:35:01 · 1122 阅读 · 0 评论 -
Kafka篇——Kafka消费者端常见配置,涵盖自动手动提交offset、poll消息细节、健康状态检查、新消费组消费offset规则以及指定分区等技术点配置,全面无死角,一篇文章拿下!
一、自动提交offset1、概念Kafka中默认是自动提交offset。消费者在poll到消息后默认情况下,会自动向Broker的_consumer_offsets主题提交当前主题-分区消费的偏移量2、自动提交offset和手动提交offset流程图3、在Java中实现配置4、自动提交offset问题自动提交会丢消息。因为如果消费者还没有消费完poll下来的消息就自动提交了偏移量,那么此时消费者挂了,于是下一个消费者会从已经提交的offset的下一个位置开始消费消息。原创 2024-01-15 10:16:01 · 5890 阅读 · 0 评论 -
Kafka篇——消费者实现流程,详细的消费者创建和使用流程!
Kafka消费者是Kafka消息队列系统的一部分,用于从Kafka集群中读取和处理消息。作为一个分布式流平台,Kafka被设计为高性能、可扩展且可靠的消息传递系统。Kafka消费者允许应用程序实时订阅并消费Kafka中的消息流。下面是Kafka消费者的一些关键特点和功能:1. 可扩展性:Kafka消费者可以水平扩展,从而支持大规模的消息处理和高吞吐量。2. 消息流订阅:Kafka消费者可以订阅一个或多个主题(topics)中的消息流,并实时地读取和处理这些消息。原创 2024-01-12 17:20:52 · 1109 阅读 · 0 评论 -
Kafka篇——生产者端发送消息配置汇总(ACK配置、重试间隔设置以及发送消息缓冲机制)干货满满!细节满满!
生产者同步发送消息的时候,生产者在获得集群返回的ACK前会一直阻塞,那么集群什么时候给生产者返回ACK呢?在Kafka中,ACK(Acknowledgement)是一种确认机制,用于确保消息的可靠传递。当Producer发送消息给Kafka的一个分区时,Producer可以选择是否等待Broker对消息的接收进行确认。ACK机制提供了三种级别的确认:1. `acks=0`:Producer发送消息后,不需要等待Broker的确认即可继续发送下一条消息。原创 2024-01-12 17:16:10 · 3501 阅读 · 0 评论 -
Kafka篇——Java中实现生产者功能,手把手教学,满满干货!
正常情况下,控制台是不会打印"异步方式发送消息结果:......",因为执行完这个异步发送消息的方法时,主线程就会关闭,会由新的线程去异步执行发消息的方法,所以主线程是那不到这个打印的结果。异步发送,生产者发送完消息就可以执行后面的业务逻辑,不会等待消息发送完这段时间阻塞Broker在收到消息后会异步调用生产者提供的callBack回调方法。如果生产者发送消息后没有收到ACK,生产者会阻塞,阻塞3秒钟时间,如果还没有收到消息,会进行重试,重试次数为3次。引入的依赖版本要与我们服务器中的Kafka版本一致。原创 2024-01-11 17:53:37 · 925 阅读 · 0 评论 -
Kafka篇——Kafka集群搭建,命令实现集群的生产和消费消息,细节拉满,干货满满!
Kafka集群是由多个Kafka节点组成的集合,每个节点都运行Kafka服务,共同组成一个分布式消息系统。Kafka集群的概念和优势如下:高可用性:Kafka集群可以容忍单个节点的故障,其他节点可以继续提供服务,确保消息的持久性和可靠性。伸缩性:Kafka集群可以根据需求进行水平扩展,通过增加节点来增加处理能力,实现高吞吐量的消息处理。容错性:Kafka集群采用分布式架构,将消息分散存储在多个节点上,即使某个节点发生故障,消息仍然可以被其他节点读取和处理。原创 2024-01-11 17:45:47 · 784 阅读 · 0 评论 -
Kafka篇——Kafka中主题、分区和副本,重点中的重点!涵盖主题分区的创建和原理!
一、主题介绍主题topic在Kafka中是一个逻辑的概念,Kafka通过topic将消息进行分类。不同的topic会被订阅该topic的消费者消费二、引出分区我们学习Kafka的时候,了解到Kafka中的消息会被持久化到log文件中,如果这个topic中的消息非常多,多到几个T的内存,那么这个时候肯定会存在内存过大的问题。因此提出了Partition分区的概念三、分区介绍一个主题中的消息量是非常巨大的,因此可以通过分区的设置,来分布式存储这些消息。原创 2024-01-08 18:26:35 · 1491 阅读 · 0 评论 -
Kafka篇——Kafka中单播和多播消息实现,含详细实现方式,一篇文章帮你搞定!
一、了解单播消息多个消费者在一个消费组里,只会有一个消费者能消费到某一个topic中的消息。这样设计为了保证消费消息的顺序性。于是可以创建多个消费者,这些消费者可以在一个消费组里二、单播消息逻辑图三、实现单播消息命令。原创 2024-01-08 18:22:02 · 1206 阅读 · 0 评论 -
Kafka篇——Kafka基本概念,命令行实现生产者和消费者,详细的介绍让你一遍拿下Kafka基本知识,保姆级教程!
Kafka是一个分布式的流处理平台,主要用于发布和订阅实时数据流。以下是Kafka的基本概念:1. Producer(生产者):负责将数据发布到Kafka集群中的特定主题(topic)。2. Consumer(消费者):从Kafka集群中的特定主题中订阅数据,并进行相应的处理。3. Topic(主题):一个主题可以被看作是一个数据流的类别或名称,用于区分不同类型的数据。4. Partition(分区):一个主题可以被分为多个分区,每个分区可以在不同的服务器上。原创 2024-01-07 21:13:58 · 1442 阅读 · 0 评论 -
Kafka篇——消息队列基本知识,涵盖消息队列优势、消息队列的流派以及
使用消息队列的原因有很多。以下是其中几个常见的原因:解耦:通过使用消息队列,可以将应用程序之间的耦合降低到最低限度。发送方只需将消息发送到消息队列中,而不需要直接将消息发送给特定的接收方。接收方可以根据需要从消息队列中获取消息。异步通信:消息队列允许发送方和接收方在不同的时间和速率下进行通信。发送方可以将消息发送到队列中,而不需要等待接收方处理该消息。接收方可以在适当的时间从队列中获取并处理消息。缓冲和削峰填谷:当发送方和接收方的处理能力不匹配时,消息队列可以充当缓冲区。原创 2024-01-07 21:06:34 · 472 阅读 · 0 评论