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

相关推荐
格子先生Lab20 分钟前
Elasticsearch 入门教学:从零开始掌握分布式搜索引擎
分布式·elasticsearch·搜索引擎
郝开2 小时前
选型消息队列(MQ):ActiveMQ、RabbitMQ、RocketMQ、Kafka对比
spring boot·kafka·rabbitmq·rocketmq·activemq·mq
昨天今天明天好多天2 小时前
【Hadoop】
大数据·hadoop·分布式
夏天的味道٥2 小时前
为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
kafka·rabbitmq·activemq
隔着天花板看星星2 小时前
Flink-DataStreamAPI-执行模式
大数据·分布式·flink
Kale又菜又爱玩2 小时前
Zookeeper实践指南
java·分布式·zookeeper
江湖十年2 小时前
如何基于 Go 语言设计一个简洁优雅的分布式任务系统
分布式·后端·go
WeiLai11124 小时前
面试基础--Redis 缓存穿透、缓存击穿、缓存雪崩深度解析
java·redis·分布式·后端·缓存·面试·架构
shyの同学4 小时前
分布式ID生成方案:数据库号段、Redis与第三方开源实现
redis·分布式·mysql·id
小刘爱喇石( ˝ᗢ̈˝ )15 小时前
行式数据库与列式数据库区别
数据库·分布式