kafka介绍

一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统
主要应用场景是:日志收集系统和消息系统

核心概念

发布订阅模型

消息被持久化到一个topic中。消费者可以订阅一个或多个topic,消费者可以消费该topic中所有的数据,同一条数据可以被多个消费者消费,数据被消费后不会立马删除。

Broker(服务器节点)

一台Kafka服务器就是一个Broker,一个集群由多个Broker组成,每个Broker可以容纳多个Topic;

Producer(发布者)

发布者将消息发布到Kafka的topic中。broker接收到生产者发送的消息后,broker将该消息追加到当前用于追加数据的segment文件中;

Consumers(消费者)

消费者可以从broker中读取数据。消费者可以消费多个topic中的数据;

Consumer group(消费者组)

每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group);

Topic(消息类别)

每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic;(类似数据库表名)

Partition(分区)

Topic中的数据分割为一个或多个partition。每个topic至少有一个partition;

Zookeeper

存放元数据;指主题分区的所有数据都保存在 ZooKeeper 中,且以它保存的数据为权威,其他都要与它保持对齐;
成员管理;是指 Broker 节点的注册、注销以及属性变更;
Controller选举;是指选举集群 Controller,而其他管理类任务包括但不限于主题删除、参数配置等;

代码示例

图形界面管理工具(kafka-manager)

问题

1.Kafka中的消息是否会丢失和重复消费?

2.Kafka中是怎么体现消息顺序性的?

3.Kafka中的事务是怎么实现的?


Tom_jerry
18 声望0 粉丝

引用和评论

0 条评论