文章目录
- 前言
- 一、Kafka的基本介绍
- (一)Kafka的特点
- 二、Kafka的架构
- 总结
前言
#博学谷IT学习技术支持#
本篇文章主要从Kafka的基本介绍,Kafka的架构入手,如果有不恰当或者有疑问的地方,非常欢迎各位的意见和建议!
一、Kafka的基本介绍
Kafka底层由scala语言编写,其是一个分布式,支持分区,多副本以及多订阅者的日志系统,简称分布式MQ系统,Kafka是消息队列的中间件产品,可以用于搜索日志,监控日志以及访问日志等等。kafka在进行消息保存时会根据Topic进行归类,发送消息者称为Producer,消息接收者称为Consumer,在Kafka集群中存在多个kafka实例,每个实例(Server)称为Broker。无论是Kafka集群,Producer或者是Consumer都依赖于Zookeeper集群,所以开启Kafka集群先需要保证Zookeeper集群的正常运行。
(一)Kafka的特点
- 可靠性: 分布式, 多分区 ,多副本和容错等
- 可扩展性: Kakfa集群轻松缩放和扩展, 无需停机
- 耐用性: Kafka使用分布式提交日志, 这个意味着消息会尽可能快速的保存在磁盘上, 因此它是持久的
- 性能: Kafka集群对于发布和订阅消息都具有高吞吐量, 即使存储的数据量很大,也能保证稳定的性能,零停机以及零数据丢失
二、Kafka的架构
Kafka主要包括Producer,Kafka集群和Consumer,其重要内容以及作用如下:
- Producer:数据生产者,发布数据到Kakfa集群的终端或服务
- Kafka集群:Kafka集群又称为Kafka Cluster,该集群由多台服务器组成,每一台服务称为Broker,在Broker中存储多个Topic逻辑容器,生产者存储数据时将一类数据存放在某个Topci下,消费者再从对应的Topic中消费数据;
每个Topic存在分片和副本的概念:
(1)Shard分片:一个Topic可以被分成多个分片,同一Topic下的不同分片分别放置在不同的Broker中
(2)Replicas副本:可以对每一个分片构建多个副本,分别存在不同的Broker中,副本数量最多和Broker数量一致,从而保证数据不丢失 - Consumer:消费者,主要负责消费Kafka集群中的数据
总结
Kafka是消息队列的中间件产品,通过Kafka可以对代码进行解耦,也可以提高数据的处理效率,提高数据处理效率的同时还能保证数据的安全性。