标签: Kafka

青木 | 2024-06-03 | Kafka后端相关

使用MQ的 6 种场景

今天来聊一聊 Kafka 消息队列的使用场景和核心架构实现原理,帮助你全面了解 Kafka 其内部工作原理和设计理念。。 Apache Kafka 是一个高吞吐量、分布式的流处理平台,广泛应用于实时数据管道和流处理应用中。 Kafka 以其高性能、低延迟、扩展性和可靠性,成为了大数据生态系统中的重要组件。 1.消息队列有什么作用 消息队列是一种进程间通信或者同一个进程中不同线程间的通信方式,主要解决异步处理、应用耦合、流量消峰、负载均衡等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。 kafka 本质也是一个消息队列,如下图,上游系统将消息发送到消息中间件,下游系统从消息中间件中获取消息消费。 马楼:“上游系统为什么不直接发消息给下游系统,搞个中间商干啥?” 这就要从消息队列的主要作用说起了。 异步处理 消息队列可以实现异步通信,使得发送消息的组件不需要等待接收消息的组件...

 238 |  0 |  0 Kafka后端相关

观云 | 2024-05-28 | Kafka后端相关

消息队列的 6 种经典使用场景和 Kafka 架构设计原理详细解析

今天来聊一聊 Kafka 消息队列的使用场景和核心架构实现原理,帮助你全面了解 Kafka 其内部工作原理和设计理念。。 Apache Kafka 是一个高吞吐量、分布式的流处理平台,广泛应用于实时数据管道和流处理应用中。 Kafka 以其高性能、低延迟、扩展性和可靠性,成为了大数据生态系统中的重要组件。 1.消息队列有什么作用 消息队列是一种进程间通信或者同一个进程中不同线程间的通信方式,主要解决异步处理、应用耦合、流量消峰、负载均衡等问题,实现高性能、高可用、可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。 kafka 本质也是一个消息队列,如下图,上游系统将消息发送到消息中间件,下游系统从消息中间件中获取消息消费。 马楼:“上游系统为什么不直接发消息给下游系统,搞个中间商干啥?” 这就要从消息队列的主要作用说起了。 异步处理 消息队列可以实现异步通信,使得发送消息的组件不需要等待接收消息的组件...

 381 |  0 |  0 Kafka后端相关

心如止水 | 2024-05-22 | Kafka后端相关

kafka入门实战教程看这篇就够了

1.kafka是什么 Kafka传统定义 :Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。 发布/订阅 :消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息 分为不同的类别,订阅者只接收感兴趣的消息。 Kafka 最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。 消息队列的应用场景无外乎是: 削峰填谷、应用解耦、异步处理 等等,具体使用案例我们在之前讲[rabbitmq基础篇](https://mp.weixin.qq.com/s?__biz=Mzg5MDY1NzI0MQ &mid=2247483845&idx=1&sn=b98af294458d95bcb8ae989172492935&chksm=cfd80173f8af8865c23ffcc20ee312303d99c8a05f42994cecb48793ceb9509d1308244437f8&

 438 |  0 |  0 Kafka后端相关

OOM | 2024-05-20 | Kafka后端相关

【消息队列】 一文搞懂 Kafka

一、为什么要使用消息队列 1、生活中收快递 2、下单功能:同步 ①问题1:耦合度高 ②问题2:响应时间长 ③问题3:并发压力传递 ![图片](https://static.developers.pub/af03b6c62de747f19ce...

 468 |  0 |  0 Kafka后端相关

石昊 | 2024-04-22 | Kafka后端相关

Kafka 是什么?

你是一个程序员,假设你维护了两个服务 A 和 B。B 服务每秒只能处理 100 个消息,但 A 服务却每秒发出 200 个消息,B 服务哪里顶得住,分分钟被压垮。那么问题就来了,有没有办法让 B 在不被压垮的同时,还能处理掉 A 的消息?当然有, 没有什么是加一层中间层不能解决的,如果有,那就再加一层 。这次我们要加的中间层是 消息队列 Kafka 。 Kafka 什么是消息队列 为了保护 B 服务,我们很容易想到可以在 B 服务的内存中加入一个 队列 。 消息队列在B进程里 说白了,它其实是个链表,链表的每个节点就是一个消息。每个节点有一个序号,我们叫它 Offset ,记录消息的位置。B 服务依据自己的处理能力,消费链表里的消...

 239 |  0 |  0 Kafka后端相关

雪千寻 | 2024-04-12 | Kafka后端相关

注意:Kafka 的这 6 个场景会丢失消息!

我们使用 Kafka 的时候,怎样能保证不丢失消息呢?今天来聊一聊这个话题。 首先我们看一下 Kafka 的架构图, 场景一:异步发送 Producer 异步发送是丢失消息比较多的场景,Kafka 异步发送的代码如下: ProducerRecord<byte[],byte[]  record = new ProducerRecord<byte[],byte[] ("the-topic", key, value); RecordMetadata metadata = producer.send(record).get(); Producer 发送消息后,不用等待发送结果,就可以继续执行后面的逻辑。如果发送失败,就会丢失消息。 Kafka 提供了回调方法,可以同步等待发送结果,这样降低了发送效率,但可以对发送失败的场景进行处理,比如重新发送。 ProducerRecord<byte[],byte[]

 229 |  0 |  0 Kafka后端相关

雪千寻 | 2024-03-29 | Kafka后端相关

6 个技术点带你理解 Kafka 高性能背后的原理

Kafka 是一款性能非常优秀的消息队列,每秒处理的消息体量可以达到千万级别。今天来聊一聊 Kafka 高性能背后的技术原理。 1 批量发送 Kafka 收发消息都是批量进行处理的。我们看一下 Kafka 生产者发送消息的代码: private Future<RecordMetadata  doSend(ProducerRecord<K, V  record, Callback callback) {  TopicPartition tp = null;  try {   //省略前面代码   Callback interceptCallback = new InterceptorCallback< (callback, this.interceptors, tp);   //把消息追加到之前缓存的这一批消息上   RecordAccumulator.RecordAppendResult result = accumulator.append(tp, timestamp, serializedKey,     serializedValue, headers, in

 383 |  0 |  0 Kafka后端相关

iron Man | 2024-01-19 | Kafka后端相关

万字图解 Kafka 网络层收发消息全过程

今天跟大家聊一聊 Kafka 消息在网络层收发流程 认真读完这篇文章,我相信你会对 Kafka 网络层源码有更加深刻的理解。 这篇文章干货很多,希望你可以耐心读完。 01 总体概述 通过场景驱动的方式,在网络请求封装和监听好后,我们来看看消息是如何进行网络收发的,都需要做哪些工作。 1. 发送消息流程剖析 消息预发送 消息真正发送 2. 接收响应流程剖析 读取响应结果 解析响应信息 处理回调 为了方便大家理解,所有的源码只保留骨干。 02 发送消息流程剖析 02.1 消息预发送 这部分涉及的东西比较多,此处就简单的说明下,后续会有专门篇章进行剖析。 客户端先准备要发送的消息,流程如下: 1. Sender 子线程会从 RecordAccumulator 缓冲区拉取要发送的消息集合,抽取到的数据会存放到下面几个地方: ...

 320 |  0 |  0 Kafka后端相关

青木 | 2024-01-11 | Kafka后端相关

Kafka 除了用作消息队列还能干吗?

Kafka 最初是为大规模处理日志而构建的。它可以保留消息直到过期,并让各个消费者按照自己的节奏提取消息。 与其之前的竞品不同,Kafka 不仅仅是一个消息队列,它还是一个适用于各种情况的 开源事件流平台 。 让我们回顾一下流行的 Kafka 用例。 01 日志处理和分析 上图显示了一个典型的 ELK(Elastic-Logstash-Kibana)栈。Kafka 从每个服务实例高效地收集日志流。ElasticSearch 从 Kafka 中获取日志并编制索引。Kibana 在 ElasticSearch 的基础上提供搜索和可视化用户界面。 02 推荐系统中的数据流 亚马逊等电子商务网站利用用户过去的行为和相似用户分析来计算产品推荐。Kafka 传输原始点击流数据,Flink 对其进行处理,而模型训练则消耗数据湖中的汇总数据。这样就能不断改进针对每个用户的推荐相关性。 03 系统监控和警报 与日志分析系...

 330 |  0 |  0 Kafka后端相关

女王范 | 2023-12-28 | Kafka后端相关

Kafka 为什么会丢消息?如何保证消息不丢失?

引入 MQ 消息中间件最直接的目的:系统解耦以及流量控制([削峰填谷]()) 系统解耦: 上下游系统之间的通信相互依赖,利用 MQ 消息队列可以隔离上下游环境变化带来的不稳定因素。 流量控制: 超高并发场景中,引入 MQ 可以实现流量 “削峰填谷” 的作用以及服务异步处理,不至于打崩服务。 引入 MQ 同样带来其他问题:数据一致性。 在分布式系统中,如果两个节点之间存在数据同步,就会带来数据一致性的问题。消息生产端发送消息到 MQ 再到消息消费端需要保证消息不丢失。 图片 所以在使用 MQ 消息队列时,需要考虑这 3 个问题: 图片 如何知道有消息丢失? 哪些环节可能丢消息? 如何确保消息不丢失? 如何知道有消息丢失? 如何感知消息是否丢...

 401 |  0 |  0 Kafka后端相关

雪千寻 | 2023-10-18 | Kafka后端相关

kafka 分布式的情况下,如何保证消息的顺序消费?

1、什么是分布式 分布式是指将计算任务分散到多个计算节点上进行并行处理的一种计算模型。在分布式系统中,多台计算机通过网络互联,共同协作完成任务。每个计算节点都可以独立运行,并且可以相互通和协调。 这种分布式的架构可以提高计算能力和可靠性,充分利用集群资源,提高系统的扩展性和灵活性。常见的分布式系统包括分布式数据库、分布式文件系统、分布式计算等。分布式系统用于处理大规模的数据和复杂的计算任务,适用于各种领域,如互联网、云计算、大数据分析等。 2、kafka介绍 Kafka是一种高性能、分布式的流式数据平台,由Apache基金会开发和维护。它的设计目标是实时、可持久地处理大规模的流式数据。 Kafka的核心概念是一个分布式的发布-订阅消息系统。它以可扩展性和持久性为重点,通过将数据分割成...

 391 |  1 |  0 Kafka后端相关

晚风 | 2023-10-07 | Kafka后端相关

深度剖析:Kafka 请求是如何处理的? 看完这篇文章彻底懂了!

国庆假期已经结束,在这个充满悲伤的夜晚,让我们一起来深度剖析下「 Kafka Broker 端网络架构和请求处理流程 」是如何设计的。 相信使用过 Kafka 的朋友都知道其吞吐量可以高达百万,但很少人理解其中的设计原理。 那么 Kafka Broker 端网络架构和请求处理到底是使用了哪些高大上的技术?它到底解决了什么问题?究竟是怎么解决的? 只有了解了这些, 我们才能深刻掌握 Kafka 服务端设计精髓所在,更加深刻理解一个高并发、高性能服务端架构该如何设计。 认真读完这篇文章,我相信你会对Kafka Broker请求处理流程和网络架构设计实现细节,有更加深刻的理解。 这篇文章干货很多,希望你可以耐心读完。 01 总体概述 要想理解 Kafka Broker 请求处理架构设计,我们需要从简单请求处理模型来说起。 对于日常系统开发,我们都知道是基于 Request/Response 的模式...

 689 |  0 |  0 Kafka后端相关

布朗熊 | 2023-09-22 | Kafka后端相关

Kafka核心原理的秘密,藏在这19张图里!

使用kafka可以对系统解耦、流量削峰、缓冲,可以实现系统间的异步通信等。在活动追踪、消息传递、度量指标、日志记录和流式处理等场景中非常适合使用kafka。这篇文章主要介绍下kafka中的基本概念。 1.kafka的整体结构 下图展示了很多关于kafka的细节,暂时先不用关注: 图中展示出了kafka的一些重要组件,接下来逐个介绍一下。 (一)Broker 服务代理节点。其实就是一个kafka实例或服务节点,多个broker构成了kafka cluster。 (二)Producer 生产者。也就是写入消息的一方,将消息写入broker中。 (三)Consumer 消费者。也就是读取消息的一方,从broker中读取消息。 (四)Consumer Group 消费组。一个或多个消费者构成一个消费组,不同的消费组可以订阅同一个主题的消息且互不影响。 (五)ZooKeeper kafka使用z...

 400 |  0 |  0 Kafka后端相关

石昊 | 2023-09-19 | Kafka后端相关

RabbitMQ vs Kafka:正面交锋

介绍 作为一名有着大量微服务系统处理经验的软件架构师,我经常遇到一个不断重复的问题:“我应该使用 RabbitMQ 还是 Kafka?” 出于某种原因,许多开发人员认为这些技术是可以互换的。虽然在某些情况下确实如此,但 RabbitMQ 还是 Kafka 之间存在根本上的差异。 因此,不同的场景需要不同的,选择错误的方案会严重影响我们的系统开发设计以及后续维护。 本系列的第 1 部分解释了 RabbitMQ 和 Apache Kafka 的内部实现概念。本文作为第二部分将继续回顾这两个消息平台之间的显著差异。 然后本文将继续向大家解释 RabbitMQ 和 Apache Kafka 内部实现,并评估它们之间的使用场景。 RabbitMQ 和 Kafka 的显著区别 RabbitMQ 是一个消息代理中间件,而 Apache Kafka 是一个分布式流处理平台。这种差异可能看起来只是语义上的,但它会带来严重的影响,影响我们方便地实现各种系统功能。 例如 Kafka 最适合处理流数据,在同一主题同一分区内保证消息顺序,而 RabbitMQ 对流中消息的顺序只提供...

 422 |  0 |  0 Kafka后端相关

孤音 | 2023-09-01 | Kafka后端相关

探秘 Kafka 的内部机制原理

简介 kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。 kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个parition内是保证消息有序。 每新写一条消息,kafka就是在对应的文件append写,所以性能非常高。 kafka的总体数据流是这样的: kafka data flow 大概用法就是,Producers往Brokers里面的指定Topic中写消息,Consumers从Brokers里面拉去指定Topic的消息,然后进行业务处理。图中有两个topic,topic 0有两个partition,topic 1有一个p...

 470 |  0 |  0 Kafka后端相关