Kafka(一)

一:简介

解决高吞吐量项目的需求

是一款为大数据而生的消息中间件,具有百亿级tps的吞吐量,在数据采集、传输、存储的过程中发挥着作用

二:为什么要使用消息队列

一个普通访问量的接口和一个大并发的接口,它们背后的设计逻辑是不同的

同步的通信方式:

-系统开销(响应时间)较大

-在同步的过程中要保证每个服务都顺利执行完,整个链路才执行完,因为网络等问题,整个链路成功执行的成功率会受影响

同步的通信方式存在性能和稳定性的问题

异步的通信方式:

-明显提升系统的吞吐量

-即使有服务失败,也可以通过分布式事务解决方案来保证最终的成功

相对于同步的通信方式,异步,可以让上游快速成功,极大提高系统的吞吐量。在分布式系统中,通过下游多个服务的分布式事务的保障,也能保障业务执行之后的最终一致性

消息队列解决的就是通信的问题

三、消息队列的流派

消息队列的中间件选型有很多种:

  • rabbitMQ:内部的可玩性(功能性)是非常强的

  • rocketMQ: 阿里内部一个大神,根据kafka的内部执行原理,手写的一个消息队列中间 件。性能是与Kafka相比肩,除此之外,在功能上封装了更多的功能。

  • kafka:全球消息处理性能最快的一款MQ

  • zeroMQ

它们之间的区别

1. 有broker

重topic:Kafka、RocketMQ、ActiveMQ 整个broker,依据topic来进行消息的中转。在重topic的消息队列里必然需要topic的存在

轻topic:RabbitMQ topic只是一种中转模式。

2.无broker

在生产者和消费者之间没有使用broker,例如zeroMQ,直接使用socket进行通信。

相关推荐
搞科研的小刘选手8 小时前
【中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026)
分布式·神经网络·计算机视觉·区块链·计算机科学·共识算法·自然语言
小饼干在学嘎瓦9 小时前
本地缓存和分布式缓存如何选择?
分布式·缓存
XLYcmy11 小时前
全链路验证测试系统:一个针对智能代理(Agent)系统全链路能力的自动化验证脚本
分布式·python·http·网络安全·ai·llm·agent
phltxy19 小时前
HAProxy安装与RabbitMQ负载均衡配置
分布式·rabbitmq·负载均衡
yoguo-21021 小时前
证明中间件支持的JakartaEE8规范
中间件
jiayong2321 小时前
Kafka 高吞吐消息链路常见面试问题及详细解答
分布式·面试·kafka
卷毛迷你猪21 小时前
快速实验篇(A2-2)数据清洗规则修正与多语言实现验证
hadoop·分布式
光影少年1 天前
Redux Toolkit 用法、解决原生Redux 冗余问题
开发语言·前端·javascript·react.js·中间件·前端框架·ecmascript
业精于勤_荒于稀1 天前
登录鉴权-ai
分布式
段一凡-华北理工大学1 天前
工业领域的Hadoop架构学习~系列文章05:Kafka消息队列 - 工业数据流传输
人工智能·hadoop·学习·架构·kafka·工业智能体·高炉炼铁智能化