Kafka
一、概念
kafka 是一个高可靠,高可用,高性能,可伸缩的主从式架构消息系统。对进程间起到一个缓存作用,可以有效地解耦合,很好地解决高并发的请求任务。
二、高可用架构图
Zookeeper集群主要的作用就是保证Kafka集群的高可用性,如果主节点出现故障,重新选举出新主节点
broker (节点服务器)拥有broker.id,每一个节点的broker.id是唯一标识,不可重复
topic(主题)代表抽象的消息类别,每一个topic包含一个或多个partition
partition(分区)存放消息数据,分区存在副本replica,副本包括leader_partition和follower_partition
Producer (生产者)主要的作用就是发布消息到Kafka集群的终端或服务,找到对应的topic主题,写入leader_partition中
Consumer_group(消费者组)包含一个或者多个Consumer(消费者),每个消费者组的consumer_group.id是唯一标识,不可重复
consumer(消费者)主要的作用就是从对应的topic主题中,读取leader_partition中的消息数据
三、组件之间的关系
四、特性
- 高性能
- kafka数据是顺序写入磁盘,零拷贝读取数据
- log segment file日志段文件是对每个分区的数据采用log rolling滚动日志,自动切割,拆分为多个段,.index/.log/.timeindex三个文件,默认大小配置文件log.segment.bytes=1G102410241024
- 高可靠
- 采用NIO网络设计