kafka概述(一)
概述
1、定义
Kafka 是由 Linkedin 公司开发的, 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),同时是支持多分区、多副本的分布式消息流平台,适合大数据的存储以及计算
2、应用场景
限流削峰:在非常高的并发下,防止导致服务系统崩溃,消息队列能帮忙服务顶住突发的访问压力,解决生产能力和消费能力不一致的问题
服务解耦:解除不同服务之间的依赖关系,防止一端服务变更导致另一端服务需要同步变更或崩溃的问题,使修改更为灵活,维护与开发成本降低
异步通信:允许将消息放入队列中不用立即处理,且生产者发送消息时也可选择异步或者同步发送
3、特点
高吞吐、低延迟:kakfa 最大的特点就是收发消息非常快,kafka 每秒可以处理几十万条消息,它的最低延迟只有几毫秒;
高伸缩性:每个主题(topic) 包含多个分区(partition),主题中的分区可以分布在不同的主机(broker)中;
持久性、可靠性:Kafka 能够允许数据的持久化存储,消息被持久化到磁盘,并支持数据备份防止数据丢失,Kafka 底层的数据存储是基于 Zookeeper 存储的,
Zookeeper 我们知道它的数据能够持久存储;
容错性:允许集群中的节点失败,某个节点宕机,Kafka 集群能够正常工作;
高并发:支持数千个客户端同时读写。
4、基本概念
生产者(Producer):向 Kafka 发布(写入)事件的客户端应用程序
消费者(Consumer):订阅(读取和处理)事件的客户端应用程序
节点(Broker):kafka所安装的服务器,负责存储和读取消息
主题(Topic):消息的主题,每条发布到队列中的消息都隶属一个主题
分区(Partition):可以为主题划定分区,存储在不同的节点,提高消息存储以及读取的速率
消费者群组(Consumer Group):包含一组消费者,topic的一个分区只会被同一消费组中的某一个消费者进行消费