首页 > 其他分享 >Kafka概述

Kafka概述

时间:2023-06-15 15:36:00浏览次数:33  
标签:订阅 消费者 队列 Kafka 概述 消息 数据

定义

Kafka传统定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接收感兴趣的消息。
Kafka最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成关键任务应用

消息队列的应用场景

缓冲/消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况
解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束
异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。

消息队列的两种模式

  1. 点对点模式
  • 消费者主动拉取数据,消息收到后清除消息
    img
  1. 发布/订阅模式
  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据
    img

基础架构

  1. 为了方便扩展,并提高吞吐量,一个topic分为多个partition
  2. 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费
  3. 为提高可用性,为每个partition增加若干副本,类似NameNode HA
  4. ZK中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK
    img

标签:订阅,消费者,队列,Kafka,概述,消息,数据
From: https://www.cnblogs.com/xiaodunan/p/17483023.html

相关文章

  • Kafka安装
    环境说明在安装Kafka之前,请确保已经安装了JDK和Zookeeper。运行Kafka,首先保证Java环境能正常使用,可执java-version查看。安装JDK环境下载jdk安装包curlhttps://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.tar.gz-ojdk-20_linux-x64_bin.tar.gz新建JDK......
  • IO流的概述和分类
    1.IO流的概述IO:Input和Output的简写,是输入、输出的意思(即读、写)流:是一种抽象的概念,对数据传输的总称。数据在设备之间传输称之为流,流的本质是数据传输。2.分类传输类型分类:输入、和输出数据类型分类:字节流:字节输入流和字节输出流,简称字节IO流......
  • 通过Kafka在ignite集群之间进行实时数据复制
    版本1.6的ApacheIgnite提供了一种基于KafkaConnect进行数据处理的新方法。KafkaConnect是ApacheKafka0.9中引入的一个新特性,它支持ApacheKafka和其他数据系统之间的可伸缩和可靠的流数据。它使得在内存中向您的可伸缩和安全的流数据管道中添加新系统变得非常容易。在本文中,我们将......
  • 概述 .NET 6 ThreadPool 实现
     目录前言任务的调度基本调度单元IThreadPoolWorkItem实现类的实例。Task全局队列本地队列偷窃机制WorkerThread的生命周期管理线程注入实验.NET5实验一默认线程池配置.NET5实验二调整ThreadPool设置.NET5实验三tcs.Task.Wait()改为Thr......
  • 计算机网络概述
    1.计算机网络概述1.1.计算机网络的定义1.2.计算机网络的基本功能1.3.计算机网络的演进1.4.计算机网络的中的基本概念1.4.1.局域网,城域网,广域网1.4.2.网络的拓扑结构1.4.3.电交换与分组管理1.5.衡量计算机网络的主要指标1.6.网络标准化组织2.OSI参考......
  • 机器学习算法实现解析——libFM之libFM的训练过程概述
    本节主要介绍的是libFM源码分析的第四部分——libFM的训练。FM模型的训练是FM模型的核心的部分。4.1、libFM中训练过程的实现在FM模型的训练过程中,libFM源码中共提供了四种训练的方法,分别为:StochasticGradientDescent(SGD),AdaptiveSGD(ASGD),AlternatingLeastSquares(ALS)和MarkovCh......
  • go实现高并发高可用分布式系统:设计类似kafka的高并发海量数据存储机制2
    上一节我们完成了数据的存储和索引,本节我们看如何写入数据和进行查询。我们将创建一个Segment对象,它一方面接收发送来的请求,也就是Record数据结构,然后将数据写入到store和index,基本架构如下:在前面章节中,我们使用代码定义了Record的数据结构,现在我们需要使用protobuf来重新定义它,一......
  • go实现高并发高可用分布式系统:设计类似kafka的高并发海量数据存储机制1
    上一节我们实现了日志微服务,它以http服务器的模式运行,客户端通过json方式将日志数据post过来,然后通过httpget的方式读取日志。当时我们的实现是将所有日志信息添加到数组末尾,这意味着所有日志信息都会保存在内存中。但分布式系统的日志数量将非常巨大,例如推特一天的日志数量就达到......
  • kafka工作原理
    1.工作流程以及文件存储机制​ kafka中的消息是以topic进行分类的,生产消费消息都是面向topic。​ topic是逻辑上的概念,partition分区是物理上的概念,每个分区对应一个log文件,该log文件存储的就是producer生产的log数据。producer生产的数据会追加到文件末端。消费者组中的每......
  • Transformer架构:革命性的深度学习模型概述
    Transformer架构是一种革命性的深度学习模型,由Vaswani等人在2017年的论文《AttentionisAllYouNeed》中提出。它在自然语言处理(NLP)和其他序列到序列(seq2seq)任务中取得了显著的突破,成为目前最受关注和广泛应用的模型之一。背景与动机在传统的序列模型中,如循环神经网络(RNN)和卷......