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进行通信。

相关推荐
DemonAvenger4 天前
Kafka性能调优:从参数配置到硬件选择的全方位指南
性能优化·kafka·消息队列
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
SunnyRivers5 天前
LangChain中间件详解
中间件·langchain
金刚猿5 天前
06_虚拟机中间件部署_xxl-job 部署
中间件·xxl-job·xxl-job-admin
yumgpkpm5 天前
AI视频生成:Wan 2.2(阿里通义万相)在华为昇腾下的部署?
人工智能·hadoop·elasticsearch·zookeeper·flink·kafka·cloudera
予枫的编程笔记5 天前
【Kafka高级篇】避开Kafka原生重试坑,Java业务端自建DLQ体系,让消息不丢失、不积压
java·kafka·死信队列·消息中间件·消息重试·dlq·java业务开发
倚肆5 天前
在 Windows Docker 中安装 Kafka 并映射 Windows 端口
docker·kafka
断手当码农5 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
Sheffield5 天前
如果把ZooKeeper按字面意思比作动物园管理员……
elasticsearch·zookeeper·kafka