kafka学习笔记

kafka的学习笔记,内容均整理自网络

如果侵害到您的权利,请与我联系。

一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

1. 术语:

Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker
Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
Partition:Partition是物理上的概念,每个Topic包含一个或多个Partition.(分区)
Producer:负责发布消息到Kafka broker
Consumer:消息消费者,向Kafka broker读取消息的客户端。
Consumer Group:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

2. 使用场景:

在系统或应用程序之间构建可靠的用于传输实时数据的管道,消息队列功能。
构建实时的流数据处理程序来变换或处理数据流,数据处理功能。

3. 消息传输流程:

这里写图片描述

4. kafka服务器消息存储策略

这里写图片描述
kafka在接收到生产者发送的消息之后,会根据均衡策略将消息存储到不同的分区中。
这里写图片描述
在每个分区中,消息以顺序存储,最晚接收的消息最后被消费

5. 与生产者的交互:

这里写图片描述

6. 与消费者的交互:

消费者的数量不应该多于分区的数量,因为在一个group中,每个分区至多只能绑定到一个消费者上,即一个消费者可以消费多个分区,一个分区只能给一个消费者消费,因此,若一个group中的消费者数量大于分区数量的话,多余的消费者将不会收到任何消息。
这里写图片描述

7. 下载:

http://kafka.apache.org/downloads

文件说明:

  1. consumer.properites 消费者配置,
  2. producer.properties 生产者配置
  3. server.properties kafka服务器的配置,此配置文件用来配置kafka服务器
    3.1 broker.id 申明当前kafka服务器在集群中的唯一ID,需配置为integer,并且集群中的每一个kafka服务器的id都应是唯一的
    3.2 listeners 申明此kafka服务器需要监听的端口号
    3.3 zookeeper.connect 申明kafka所连接的zookeeper的地址 ,需配置为zookeeper的地址 (高版本的kafka自带了zookeeper)

8. 运行:

先启动zookeeper:zookeeper-server-start.sh config/zookeeper.properties
再启动kafka:kafka-server-start.sh config/server.properties

8.1 基本使用

  1. 创建一个名为test的topic:kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic test
  2. 查看已经创建了的topic: kafka-topics.sh –list –zookeeper localhost:2181
  3. 创建一个消费者:kafka-console-consumer.sh –bootstrap-server localhost:9092 –topic test –from-beginning
  4. 创建一个生产者(打开新的终端):kafka-console-producer.sh –broker-list localhost:9092 –topic test
    (然后可以发送消息,在消费者的终端可以查看到)

9. 使用java程序:

创建topic:
这里写图片描述
使用AdminClient API可以来控制对kafka服务器进行配置,这里使用NewTopic(String name, int numPartitions, short   replicationFactor)的构造方法来创建了一个名为“topic-test”,分区数为1,复制因子为1的Topic.
Producer生产者发送消息
这里写图片描述
Consumer消费者消费消息
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值