kafka简单入门

什么是Kafka?
Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。 它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。
好处
以下是Kafka的几个好处
可靠性 - Kafka是分布式,分区,复制和容错的。
可扩展性 - Kafka消息传递系统轻松缩放,无需停机。
耐用性 - Kafka使用分布式提交日志,这意味着消息会尽可能快地保留在磁盘上,因此它是持久的。
性能 - Kafka对于发布和订阅消息都具有高吞吐量。 即使存储了许多TB的消息,它也保持稳定的性能。
Kafka非常快,并保证零停机和零数据丢失。
kafka简单入门_第1张图片
生产者producer发布一系列的消息主题topics到指定的主题分区partition,经纪人broker代理是负责维护发布数据的简单系统,消费者consumer从经理人处读取数据,消费者订阅一个或多个主题,并通过从代理中提取数据来使用已发布的消息。
Leader是负责指定分区的所有读取和写入的节点,每个分区都有一台服务器作为leader
follower跟随领导者指令的节点被称为Follower。 如果领导失败,一个追随者将自动成为新的领导者。 跟随者作为正常消费者,拉取消息并更新其自己的数据存储。
kafka的集群架构
kafka简单入门_第2张图片
Broker(代理)
Kafka集群通常由多个代理组成以保持负载平衡。Kafka代理是无状态的,所以他们使用ZooKeeper来维护它们的集群状态。 一个Kafka代理实例可以每秒处理数十万次读取和写入,每个Broker可以处理TB的消息,而没有性能影响。 Kafka经纪人领导选举可以由ZooKeeper完成。
ZooKeeper
ZooKeeper用于管理和协调Kafka代理。 ZooKeeper服务主要用于通知生产者和消费者Kafka系统中存在任何新代理或Kafka系统中代理失败。 根据Zookeeper接收到关于代理的存在或失败的通知,然后产品和消费者采取决定并开始与某些其他代理协调他们的任务。
Kafka工作流程
Kafka只是分为一个或多个分区的主题的集合。 Kafka分区是消息的线性有序序列,其中每个消息由它们的索引(称为偏移)来标识。 Kafka集群中的所有数据都是不相连的分区联合。 传入消息写在分区的末尾,消息由消费者顺序读取。 通过将消息复制到不同的代理提供持久性。

安装很简单下载压缩包,解压到服务器上就可以了
后台启动zookeeper
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >/dev/null 2>&1 &
nohup bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &
1、创建kafka主题
语法:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic-name
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Hello-Kafka
2、获取Kafka服务器中的主题列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
3、Describe 命令用于检查哪个代理正在侦听当前创建的主题,如下所示
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic Multibrokerappli-cation
4、启动生产者以发送信息
语法:bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-name
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka
5、启动消费者以接受消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic Hello-Kafka --from-beginning
6、基本主题操作
6.1修改主题
语法:bin/kafka-topics.sh —zookeeper localhost:2181 --alter --topic topic_name
–partitions count
bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic Hello-Kafka --partitions 2
6.2删除主题
语法:bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic topic_name

你可能感兴趣的:(Kafka)