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

相关推荐
spiker_6 小时前
RabbitMQ 常见使用模式详解
分布式·rabbitmq
不能再留遗憾了6 小时前
RabbitMQ 高级特性——持久化
分布式·rabbitmq·ruby
成为大佬先秃头6 小时前
解决RabbitMQ设置TTL过期后不进入死信队列
分布式·中间件·rabbitmq·java-rabbitmq
七夜zippoe8 小时前
分布式系统实战经验
java·分布式
happycao1239 小时前
记一次kafka消息丢失问题排查
kafka
nomi-糯米9 小时前
Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约
分布式·网络安全·区块链·智能合约·分布式账本
喜欢猪猪9 小时前
Kafka是如何保证数据的安全性、可靠性和分区的
分布式·kafka
芊言芊语9 小时前
分布式消息服务Kafka版的详细解析和配置方式
分布式·kafka
Alluxio10 小时前
选择Alluxio来解决AI模型训练场景数据访问的五大理由
大数据·人工智能·分布式·ai·语言模型
武子康10 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark