Kafka概述与下一代消息队列

下一代MQ中间件,不来了解下? 系统架构功能特色租户和命名空间(namespace)是 Pulsar 支持多租户的两个核心概念。在租户级别,Pulsar 为特定的租户预留合适的存储空间、应用授权与认证机制。在命名空间级别,Pulsar 有一系列的配置策略(policy),包括存储配额、流控、消息过期策略和命名空间之间的隔离策略。Pulsar 做了队列模型和流模型的统一,在 Topic 级别只需保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度。 阅读详情

常用的消息中间件

消息中间件是当前处理大数据的一个非常重要的组件,用来解决应用解耦、异步通信、流量控制等问题,从而构建一个高效、灵活、消息同步和异步传输处理、存储转发、可伸缩和最终一致性的稳定系统。目前业界应用比较多的分布式消息中间件主要包括:ActiveMQ、RabbitMQ、Kafka、RocketMQ,虽然都是分布式消息中间件,但是每种消息中间件使用方式区别还是很大的。

ActiveMQ

  • 优点:Apache开源,功能集全,文档多,历史悠久,支持多语言客户端,使用简单。

  • 缺点:性能比较低、只支持主从架构,扩展性差。

RabbitMQ

  • 优点:用Erlang语言实现,性能比ActiveMQ高,功能丰富,支持协议多(AMQP、XMPP、SMTP)。

  • 缺点:虽然性能比ActiveMQ好,但比Kafka、RocketMQ还是有差距,只支持主从方式。扩展性差

Kafka

  • 优点:Apache开源,性能非常高,可靠性好,分布式扩展能力,支持多语言。

  • 缺点:管理工具少,支持协议少

RocketMQ

  • 优点:Apache开源,java语言实现,学习了Kafka的设计理念,继承了高性能、扩展性好。功能对企业应用支持比较好了,如定时消息。

kafka设计目标

以时间复杂度为O1的方式 提供消息持久化能力,即使对TB级的数据也能保证常数级时间的访问能力。

高吞吐率,即使在廉价的商用机器上,也能做单机10万条每秒的传输率。

支持消息分区,及分布式消费,保证每个分区的消息顺序消费

支持离线数据处理和实时数据处理

支持在线水平扩展

Kafka的特性

  • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。

  • 可扩展性:kafka集群支持热扩展

  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

  • 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)

  • 高并发:支持数千个客户端同时读写

应用场景

消息系统:

KafKa作为一个优秀的消息系统,具有高吞吐量、内置的分区、备份冗余分布式的特点,为大规模的消息处理提供了一种很好的解决方案;

应用监控:

利用KafKa收集应用程序和服务器健康相关指标,如CPU占用率、IO、内存、连接数、TPS、QPS等,然后将指标信息进行处理

流处理:

需要将已经收集的流数据,如系统的点击、浏览事件,提供给其他流式计算框架进行处理,Spark Stream, Storm Flink;

持久性日志:

KafKa可以为外部系统提供一种持久性日志的分布式系统。日志可以在多个节点之间进行备份

Kafka概念

  • Message(消息):一条数据,每条消息都有一个键和对应的一个值。

  • producer(生产者):将消息发布到 topics。Producer 决定向 topic 分区的发布方式

  • consumer(消费者):消息的订阅者

  • Consumer Group:consumer的逻辑组,一条消息,只能被同一个Consumer Group消费一次。

  • topic(主题):消息的分类。消费者通过订阅Topic来读取数据

  • partition(分区):一个topic至少一个分区,不同分区不保证消息的消费顺序。更多的分区意会着,更高吞吐能力。同时会打开更多的文件句柄。进程打开的文件句柄是目前Kafka系统的一大瓶颈。Kafka broker使用的是本地文件系统,这将会影响Kafka往流式架构发展,也许Kafka以后会支持分布式的文件系统。如MapR Stream.

  • Broker:Kafka 以分布式系统/集群方式运行。集群中的每个节点称一个 Broker,负责消息的持久化,可以横向扩展。

  • Replication:Kafka消息的备份,实现数据冗余,保障数据尽量不丢失;

  • Offset(偏移量):消息是存储在broker上的分区里

  • ISR(In-sync Replica):可用同步的副本列表,ISR<Replication,消息在所有复本同步的过程中,有的节点同步速度比较慢,如果和Leader差比较多,这个时这个节点的复本就会被从ISR中移除,当同步进度跟上leader后重新加入ISR

Kafka的创新

消息的持久化的时间:不再需要跟踪特定消息的读取情况,设定消息的保留时间。确保消息被读取之后再删除。

消费者可以自己管理消息偏移量offset,Kafka可以将消息存储在文件系统上,读取消息时就和读文件一样,可以顺序性的读消息。因此Kafka的处理消息的速度非常快。

Kafka的缺点

Topic和分区数量问题,Kafka在上万的topic面前,性能会非常低下。

手动均均衡分区负载,不能自动实现负载均衡

没有固定的序列化机制,如果大规模使用时,不一样的序列机制,就无法兼容通讯

镜像不足,Kafka只是简单把消息转发,生产者和消费者却不能转移过去

下一代的消息系统-MapR Stream

被称为下一代的消息系统,使用MapR平台的分布式文件系统,在存储上比KafKa更加强大。它的应用是在Kafka等消息队列都无法满足时,才考虑的一个消息系统。当前的架构都是请求响应型,无法满足现实生活的实时性,像当前的直播系统,或者其他实时的系统,对消息实时性有很高的要求,主是、数据量都很大时,Kafka消息队列可能也无法满足。

Java_supermanNO1:专注于Java开发技术的研究与知识分享!

————END————

  • 点赞(编辑不易,感谢您的支持)

  • …

  • 转发(分享知识,传播快乐)

  • …

  • 关注(每天更新Java开发技术)

  • …

【分布式技术】消息队列Kafka 主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。 阅读详情

相关推荐

【Linux 从基础到进阶】Kafka消息队列配置与管理

Producer:数据生产者,负责将消息发送到 Kafka 中的主题。Consumer:数据消费者,订阅并消费 Kafka 中的消息。Broker:Kafka 的服务器节点,负责存储和管理消息。Topic:消息的分类单元,Kafka 的消息通过主题进行组织。Partition:主题下的分区,每个主题可以有多个分区,分区提供并行处理能力。Zookeeper:Kafka 使用 Zookeeper 进行集群管理和元数据存储。

weixin_39372311的博客 1478

主流消息队列Kafka和下一代云原生消息平台Pulsar架构分析

以上介绍了 Kafka 的架构及痛点,并介绍了 Pulsar 是如何在架构层面解决 Kafka 的不足的。当然,以上只是 Pulsar 的大体设计,具体到实现必然有很多细节和难点,不是一篇文章能讲完的,后续我还会分享我的学习经验。Pulsar 还有很多优秀特性,比如多租户、跨地域复制等企业级特性,比如更灵活的消费模型,比如批流融合的尝试等等,这些特性可以查看 Pulsar 的官网:https://pulsar.apache.org/

随遇而安的博客 1750

Kafka分布式消息队列

查看topic:bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181删除topic:bin/kafka-topics.sh --delete --zookeeper 127.0.0.1:2181 --topic topicName。

优快云博客技术,java高级工程师,业务层架构师,高级管理认证,毕业设计可以联系我 1630

ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ消息中间件选型

消息队列中间件(简称消息中间件) 指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成 通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如:ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ等。不管选择其中的哪一款,都会有用的不趁手的地方,毕

相互学习 共同进步 1738

下一代消息中间件--pulsar

Apache Pulsar是一个企业级的分布式消息系统,最初由Yahoo开发并在2016年开源,目前正在Apache基金会下孵化。Plusar已经在Yahoo的生产环境使用了三年多,主要服务于Mail、Finance、Sports、 Flickr、 the Gemini Ads platform、 Sherpa以及Yahoo的KV存储。

Apache Kafka 下一代分布式消息系统

一个高性能分布式(Distribution),可分区(Partitioned),可备份(Replicated),基于Zookeeper协调的发布/订阅消息队列系统

再见了Kafka,MQ新王Pulsar大厂实践!

点击下方“JavaEdge”,选择“设为星标”第一时间关注技术干货!关注我,紧跟本系列专栏文章,咱们下篇再续!作者简介:魔都技术专家兼架构,多家大厂后端一线研发经验,各大技术社区头部专家博主,编程严选网创始人。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。负责:中央/分销预订系统性能优化;活动&优惠券等营销中台建设;交易平台及数据中台等架构和开发设计。本文介绍公司选择 Apach...

JavaEdge全是干货的技术号 1149

Python爬取京东商品数据保姆级教程(附源码及效果图)

本文介绍了一个基于Python的京东商品数据爬取教程,适合入门级开发者使用。文章详细讲解了从安装依赖库(DrissionPage、pandas等)到完成数据爬取的全过程,包括:1. 模拟用户搜索操作;2. 解析商品标题、价格、销量等关键信息;3. 处理复杂数据格式(如转换万级销量);4. 数据存储与Excel导出。教程提供了完整的封装函数,支持自定义搜索关键词和爬取数量,并包含错误处理和多种元素定位方式。最终数据会按时间戳命名导出为Excel文件,方便用于课程作业或毕业设计。

weixin_46449236的博客 1874

2024消息队列“四大天王”:Rabbit、Rocket、Kafka、Pulsar巅峰对决

在选择合适的消息队列或消息传递系统时,了解各个系统的特点和优势非常重要。

Hanko的专栏 3692

【Musescore 】开源打谱软件 快速入门笔记

前两天做了个西贝柳斯的打谱软件学习笔记,反正都是初学,今天再来学习一款同类软件,比较之后确定一款深入学习。 西贝柳斯的学习笔记在此:https://blog.youkuaiyun.com/yuetaope/article/details/120020342 西贝柳斯是商业收费软件,要么花钱,要么盗版,如果您觉得这两者都不大好,那么推荐您试试Musescore。 Musescore是一款非常优秀的开源的打谱软件,生态繁荣。“开源”和“生态”是码农业的术语,我用正常人类的语言简单解释一下。 开源就是开放程序源代码,对码农

专注于医院数据分析技术与系统开发的创作与分享。 1万+

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 275

kafka概述与下一代消息队列

常用的消息中间件 消息中间件是当前处理大数据的一个非常重要的组件,用来解决应用解耦、异步通信、流量控制等问题,从而构建一个高效、灵活、消息同步和异步传输处理、存储转发、可伸缩和最终一致性的稳定系统。目前业界应用比较多的分布式消息中间件主要包括:ActiveMQ、RabbitMQ、Kafka、RocketMQ,虽然都是分布式消息中间件,但是每种消息中间件使用方式区别还是很大的。 ActiveMQ...

weixin_30354675的博客 126

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 522

【kafka01】消息队列与微服务之Kafka详解

阿里云消息队列 云消息队列 ApsaraMQ云消息队列 ApsaraMQ_打造消息服务生态-阿里云云消息队列 ApsaraMQ 是阿里云消息队列品牌,致力于“高弹性低成本、更稳定更安全、智能化免运维”三大核心方向的发展与创新,满足企业和开发者的不同业务场景需求。云消息队列 ApsaraMQ 全系列产品 Serverless 化,支持按量付费、自适应弹性、跨可用区容灾,帮助客户降低使用和维护成本,专注业务创新。

运维&陈同学的博客 1865

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击

计算机视觉:AI生成内容(AIGC)对视觉领域的冲击​ 人工智能,计算机视觉,大模型,AI,在信息技术日新月异的当下,计算机视觉作为人工智能领域的关键分支,已经深度融入了我们生活与工作的各个层面。从安防监控系统里精准的人脸识别,助力维护公共安全;到工业生产线上高效的产品质量检测,保障产品品质;再到医疗影像分析中为疾病诊断提供有力支持,计算机视觉技术凭借其对视觉信息的强大处理与理解能力,不断推动着各行业的发展与变革。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

4655

Kafka消息队列

消息是在应用间传送的数据,其形式多样,既可以是简单的文本字符串,也可以是包含嵌入对象的复杂数据。消息队列是一种应用间的通信方式,具有独特的工作模式:消息发送后,发送者可立即获得返回,而消息的可靠传递由消息系统负责。消息发布者只需将消息发布到消息队列(MQ)中,无需关注谁来获取;消息使用者只需从 MQ 中获取消息,不必在意消息的发布者。这种方式使得发布者和使用者彼此解耦,无需知晓对方的存在。

YUNYINGXIA的博客 1767

光学系统仿真软件:Finesse_(6).噪声分析与优化

在Finesse中,噪声源的定义可以通过在光学元件的参数中添加噪声项来实现。以下是一个简单的示例,展示了如何在激光器和反射镜中定义噪声源。# 定义噪声传递函数# 绘制噪声传递函数plot NTF1在这个例子中,定义了一个噪声传递函数NTF1,描述了激光器L1到反射镜M1的噪声传递过程。plot NTF1命令绘制了噪声传递函数的频谱图。# 定义耦合路径# 绘制耦合噪声频谱图plot C1在这个例子中,定义了一个耦合路径C1,描述了激光器L1和反射镜M1之间的噪声耦合关系。plot C1。

kkchenjj的博客 873

读懂消息队列:Kafka与RocketMQ

3月份学完了极客时间的《消息列队高手课》专栏,专栏讲解了许多消息队列的基础知识并且对Kafka与RocketMQ两种主流消息队列有精彩的对比分析。学完专栏后将所有要点整理为笔记记录下来。

Hopefully Sky的博客 1万+

从零开始:使用Verilog在FPGA上实现8051微控制器的完整指南

8051微控制器是一种8位微控制器,由Intel在1980年代初推出。它包括一个CPU、一些RAM和ROM、I/O端口、定时器和串行通信接口。由于其简单的架构和强大的功能,8051已经成为了嵌入式系统设计的首选。FPGA是一种集成电路,设计师可以按照自己的需求进行编程。与传统的ASIC(应用特定集成电路)相比,FPGA提供了更高的灵活性,允许在硬件级别进行快速原型设计和迭代。这里,我们定义了一些基本的输入/输出端口,如时钟clk、复位reset、数据输入/输出和地址输入/输出。

qq_38334677的博客 1330

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Kafka—消息队列

Kafka—消息队列 一、Kafka概述 1.1、简介 kafka是一个分布式的基于发布/订阅模式的消息队列 主要应用场景:大数据实时处理领域 1.2、什么是消息队列? 消息队列 = 消息 + 队列 消息 : 说白了就是数据(请求数据、业务数据等等) 队列 : 就是队列(数据结构中线性表或链表实现的先入先出的队列) 消息队列就是存放数据的队列,一种容器而已,消息队列的概念很简单,但结合实际的应用场景便很复杂 如图便是消息队列最简单的消息队列模型 向消息队列中存放数据的叫做生产者 从消息队列中获取数

WuHuaRou123的博客 6849

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

kafka消息队列

消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到 MQ 中而不管谁来取,消息使用者只管从 MQ 中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在。RabbitMQ。

qq_45972323的博客 1867

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Kafka 消息队列

核心定义消息队列(Message Queue)是一种异步通信中间件,允许应用通过发送/接收消息解耦系统组件。采用生产者-消费者模型解耦系统。生产者发送消息到队列,消费者异步拉取处理,典型组件如 Kafka、RabbitMQ。其工作模型如下分布式协调服务,为分布式系统提供一致性数据管理节点监听和集群选举能力核心特性树形命名空间(类似文件系统路径,如数据节点ZNode(分持久节点PERSISTENT和临时节点EPHEMERAL监听机制Watch(实时感知节点变化)强一致性(基于Zab 协议保证数据一致)

2301_80839375的博客 1865

【.NET】Kafka消息队列介绍,使用Confluent.Kafka集成Kafka消息队列

【.NET】Kafka消息队列介绍,使用Confluent.Kafka集成Kafka消息队列

技术分享博客,工作经验,技能学习分享(多做一些不会的,会有意向不到的收获,IT高手不可能永远只做会的) 2070
上一篇: 如何解决JVM OutOfMemoryError内存泄漏问题?
下一篇: 掌握分布式事务锁,这个大厂实战订单锁你一定要会
Java_supermanNO1
博客等级 码龄7年 1170粉丝 329原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值