Kafka

本文详细介绍了Kafka,一个分布式消息队列系统,主要用于大数据实时处理。内容涵盖Kafka的基础架构,包括Kafka的工作流程、消息队列的两种模式、Kafka的命令行操作以及深入探讨了Kafka的文件存储机制、生产者数据可靠性保证和Exactly Once语义。通过解耦合、可恢复性等优点,Kafka在分布式系统中扮演重要角色。
摘要由CSDN通过智能技术生成

第一章 Kafka概述

1.1 定义

Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。

1.2 消息队列

1.2.1 应用场景

传统消息队列有同步处理和异步处理。同步处理是说当流程走完后才能向用户返回结果;异步处理是某一流程结束后,就可以向用户返回结果,后续步骤可以在向用户返回结果后接着执行。
在这里插入图片描述

使用消息队列(MQ)的好处:

1)解耦合

MQ两侧的内容可以修改和扩展,只要保持接口不变

2)可恢复性

系统的一部分组件失效时,不会影响到整个系统。当用户填写的注册信息加入到MQ消息队列后,即使运营商发送消息的进程出现故障,也可以在故障修复后从MQ中读取消息并向用户发送消息。不会影响前一阶段的用户注册。

3)缓存

当生产者的生产速率过大而消费者的消费速率低于前者时,可能导致消息丢失或者积压。通过MQ可以先将消息写入到队列中,消费者直接从队列中获取。

4)峰值处理能力

如果某一时刻有源源不断的消息加入到MQ中,运营商不会因为并发量过大而宕机。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

5)异步通信

消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

1.2.2 消息队列的两种模式

(1)点对点模式

消费者主动拉取数据,消息收到后清除队列中的消息,对一个消息而言只能被一个消费者读取消费
在这里插入图片描述
(2)发布-订阅模式

生产者将消息发布到topic中,每个订阅了这个topic的消费者都会消费这个topic的消息。同时可以有多个消费者消费同一条消息。

1.3 Kafka基础架构

在这里插入图片描述
Kafka Cluster:每个集群中的机器都有一个brokerID,而且ID不可重复

Producer:消息生产者,向kafk broker的某个topic生产消息

Cosumer:消息消费者,从kafka broker中某个topic取消息

Consumer Group(CG):消费者组,由多个consumer组成。

​ 规则:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值