[消息队列 Kafka] Kafka 架构组件及其特性(一)

工作中的消息队列用的是Kafka,一直没有系统的了解,这边集中整理一下。

目录

Kafka主要组件有十个部分。

1.Broker(服务器)

2.Record(消息)

3.Producer(生产者)

4.Consumer(消费者)

5.Topic(主题)

6.Partition(分区)

7.Replica(副本机制)(和分区结合起来是Kafka实现高可用和负载均衡的原理)

8.Segment(段)

9.Consumer Group(消费者组)

10.Consumer Offset(偏移量)(Kafka,单分区消息顺序消费的原因)

Kafka的整体架构

Kafka特性

1)磁盘顺序I/O(速度不亚于内存I/O)

2)索引

3)批量处理和压缩传递(海量吞吐的基础)

4)零拷贝


Kafka作为消息队列(当然它不仅仅只有消息队列这一个应用场景。)

Kafka主要组件有十个部分。

1.Broker(服务器)

a)Broker就是Kafka的服务器,用于存储和管理消息,默认是9092端口

b)生产者和Broker建立连接,将消息发送到服务器上存储起来

c)消费者跟Broker建立连接,订阅和消费服务器上存储的消息。

2.Record(消息)

a)客户端传输的数据叫做消息,在Kafka中也叫Record.

b)Record在客户端是一个KV键值对(ProducerRecord, ConsumerRecord)

c)Record在服务端是一个KV键值对(RecordBatch(批量发送) 或 Record).

3.Producer(生产者)

发送消息的一方称为生产者,

Kafka为了提升消息发送速率,生产者默认采用批量发送的方式发送消息至Broker,

一条发送多少条由参数batch.size决定(默认16K)


4.Consumer(消费者)

a)订阅,接收消息的一方叫消费者

b)消费者获取消息有两种模式:Pull模式(拉)(消费者主动从消息队列中获取消息),Push模式(推)(Broker把消息推送给消费者)

Kafka采用的是Pull模式,因为Kafka是支持大数据的,如果采用Push模式的话,海量数据可能把下游消费端给打爆,所以Kafka采用Pull模式推送消息

c)Pull模式,消费者可以控制一次到底获取多少条消息(max.pull.records 默认是500)

5.Topic(主题)


a)topic(主题)一个逻辑概念,可以理解为一组消息的集合

b)生产者和消费者通过topic进行消息的写入和读取

c)生产者发送消息时候,若topic不存在,是否自动创建:auto.create.topics.enable(建议关闭)

6.Partition(分区)


a)分区(Partition)就是把一个topic分成几个不同的部分

b)一个topic在创建时候可以划分多个分区&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值