(一)kafka介绍

Kafka是一款高性能的分布式消息队列服务,具备高吞吐量、持久化数据存储、易于扩展等特点。其核心组件包括topic、producer、consumer和broker,依赖zookeeper保证系统可用性和保存元数据。Kafka通过主题逻辑结构、消息清除机制和常量级性能优化,实现高效的数据处理和存储。
摘要由CSDN通过智能技术生成

kafka概述

kafka是分布式消息队列,大体结构如下

  • topic(主题):消息按照主题归类,主题之间的数据是隔离的
  • Producer(发送消息者)
  • Consumer(消息接受者)
  • broker:kafka集群每个实例(server)
  • zookeeper:kafka集群,producer,consumer都依赖于zookeeper来保证系统可用性,保存一些meta信息

kafka特点

  • 高吞吐量: Kafka 每秒可以生产约 25 万消息(50 MB),每秒处理 55 万消息(110 MB)。花了很多功夫去保证对磁盘的读写是连续的,不是随机的,保证读写的速度
  • 持久化数据存储:可进行持久化操作。将消息持久化到磁盘,因此可用于批量消费
  • 分布式系统易于扩展:所有的 producer、broker 和 consumer 都会有多个,均为分布式的
  • 客户端状态维护:客户端与服务端通信中所需要记录的信息或状态,都由客户端自己去存储及维护,服务端只负责提供读写。这样可以让客户端非常灵活。

主题(topic)

  • 主题逻辑结构:借助图书馆来理解,不同房间(主题)放不同类型的书籍,每个房间有很多书架(分区),每个书架上的书籍都有自己的唯一编号(消息的序列号offset),并有序(消息是连续有序的)的放在书架上。
  • kakfa消息清除机制:传统的消息队列是消费过的消息会被实时删除,而kafka是配置一个时间T,消息发布时间超过T后,则被批量清除,与消费无关。
  • kafka常量级性能:Kafka的性能只与硬盘读写速度有关,因为只需磁头第一次定位,后续都是连续读写
  • 分区实现负载均衡和失败恢复:每个分区有多个副本(数量可配置),并以分区为单位来划分leader和follwer,这样把ledaer分散到各个机器,充分利用所有机器的性能。leader负责写和读,其他的follwers只负责读,并同步leader的数据,防止多个副本同时写数据的混乱问题。

生产者(producers)

Producer将消息发布到它指定的topic中,并负责决定发布到哪个分区。通常简单的由负载均衡机制随机选择分区,但也可以通过特定的分区函数选择分区。

消费者(consumers)

offset由consumer来维护,一般情况下随着consumer不断的读取消息,这offset的值不断增加,但consumer可以将offset设置成为一个旧的值来重读之前的消息。

消费者组,消费者里可以加入消费者组。

组内是竞争关系(多个消费者形成一个集群,解决单点故障),队列模式,模拟传统的消息队列。

组间是共享关系(不同的消费者,构建各自的集群),发布订阅模式

有序性

传统的消息队列,当多个consumer同时消费消息,服务器会按顺序向consumer分发消息。但是消息到达各个comsumer时可能已经失去了原来的顺序,所以只允许一个消费者消费消息。

Kafka将每个分区分只分发给一个consumer组,只要consumer组的数量不多于分区的数量即可并发访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值