目录

1.Kafka的安装

2.Kafka的基本概念

3.创建topic

4.发送消息

5.消费消息

6.关于消息的细节

7.单播消息

8.多播消息

9.查看消费组及信息


   

Kafka是由Apache软件基金会开发的一个开源流处理平台,由ScalaJava编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    常见的使用场景如下图所示:

kafka手动发消息测试 kafka 发消息_kafka

1.Kafka的安装

kafka手动发消息测试 kafka 发消息_bootstrap_02

2.Kafka的基本概念

    Kafka是一个分布式的,分区的消息服务。它提供一个消息系统应该具备的功能,但是确有着独特的设计。可以这样来说,kafka借鉴了JMS规范的思想,但是确没有完全遵循JMS规范。

    首先,让我们来看一下基础的消息相关术语:

 

kafka手动发消息测试 kafka 发消息_kafka_03

kafka手动发消息测试 kafka 发消息_bootstrap_04

服务端和客户端之间的通信通过TCP协议来完成 

3.创建topic

执行以下命令,创建名为“test”的topic,这个topic只有一个partition,并且备份因子也设置为1

bin\windows\kafka-topics.bat --create  --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

执行成功:

kafka手动发消息测试 kafka 发消息_kafka_05

 查看当前kafka内有哪些topic:

bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

kafka手动发消息测试 kafka 发消息_kafka手动发消息测试_06

4.发送消息

    kafka自带了一个producer命令客户端,可以从本地文件中读取内容,或者我们也可以从命令行中直接输入内容,并将这些内容以消息的形势发送到kafka集群。在默认情况下,每一个行会被当做成一个独立的消息。使用kafka的发送消息的客户端,制定发送到的kafka服务器地址和topic

bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

kafka手动发消息测试 kafka 发消息_bootstrap_07

5.消费消息

kafka手动发消息测试 kafka 发消息_java_08

 windows下:

 方式一:

命令:

bin\windows\kafka-console-consumer.bat  --bootstrap-server localhost:9092 --topic test

kafka手动发消息测试 kafka 发消息_java_09

 方式二:

命令:

bin\windows\kafka-console-consumer.bat  --bootstrap-server localhost:9092 --from-beginning --topic test

kafka手动发消息测试 kafka 发消息_kafka手动发消息测试_10

几个注意点:

  消息会被存储

消息是顺序存储

消息是有偏移量的

消费时可以指明偏移量进行消费

6.关于消息的细节

kafka手动发消息测试 kafka 发消息_分布式_11

kafka手动发消息测试 kafka 发消息_java_12

7.单播消息

    在一个kafka的topic中,启动两个消费者,一个生产者,问生产者发送消息,这条消息是否会同时被两个消费者消费。

同一个消费者组中只能有一个消费者收到一个topic中的消息。

kafka手动发消息测试 kafka 发消息_kafka_13

8.多播消息

不同的消费组订阅同一个topic,那么不同的消费组中只能有一个消费者能收到消息,实际上也是多个消费组中的多个消费者收到了同一个消息

kafka手动发消息测试 kafka 发消息_java_14

下图就是描述单播消息和多播消息的区别

kafka手动发消息测试 kafka 发消息_分布式_15

9.查看消费组及信息

kafka手动发消息测试 kafka 发消息_分布式_16