DK.Kafka消息引擎系统的相关知识

DK.Kafka创建topic

DK.Kafka的核心功能是以高性能的消息发送与高性能的消息消费,接下来将要给出DK.Kafka的快速入门。

在安装好DK.Kafka之后.使用命令创建topic:

bin/kafka-topics.sh --create --zookeeper loaclhost:2181--replication-factor 1 --partitions 1 –topic test

创建名称是test的topic.使用命令查看该topic的状态:

bin/kafka-topics.sh --describe --zookeeper loaclhost:2181 --topic test

可以查看我们创建的topic名为 test ,分区数(PartitionCount)和副本数(ReplicationFactor).

DK.Kafka发送消息

‍‍‍

DK.Kafka提供了脚本工具命令可以不断的接收标准输入并将它们发送到DK.Kafka的某个topic上.用户在控制台终端下启动该命令, 输入一行文本数据,然后该脚本将该行文本封装成一条DK.Kafka消息发送给指定的topic.

在控制台终端启动该脚本命令:

bin/kafka-console-producer.sh –broker-list --zookeeper loaclhost:9092 --topic test

Hello,Kafka

This is first DK.Kafka message.

打开这个控制台用户可以不断的输入字符行成消息,按下回车后该行内容会发送。

DK.Kafka消费消息

DK.Kafka同样提供了对应脚本消费某个topic的消息,对于测试DK.Kafka是很有帮助的.消费消息需要打开一个新的控制台. 并执行:

bin/kafka-console-consumer.sh –bootstrap-server loaclhost:9092–topic test –from-beginning

Hello,Kafka

This is first DK.Kafka message.

如果前面所有的命令都成功运行,在执行上面这条命令后就会看到上一步发送的2条消息。

没有关闭消息发送控制台,可以尝试再次发送消息,之后在换到消息消费控制台.就可以看到这条新生产的消息。

DK.Kafka 基本概念

DK.Kafka 是标准的消息中间件, DK.Kafka是生产一些消息然后在消费一些消息.生产者发送消息给DK.Kafka服务器.消费者从DK.Kafka服务器读取消息, DK.Kafka服务器依托zooKeeper集群进行服务的协调管理组件。

DK.Kafka中我们刚刚使用了topic(主题)和 partition(分区),现在介绍下这2个。

topic只是一个逻辑的概念,代表了一类消息,也可以认为是消息被发送到的地方.通常我们可以使用topic来区分实际业务,比如A业务使用一个topic,B业务使用另外一个topic. DK.Kafka中的topic通常都会被多个消费者订阅.从性能上的考虑, DK.Kafka采用了topic-partition-message的三级结构来分散.从本质上说没个DK.Kafka的topic都是由1个或多个partition组成.如下图:

DK.Kafka的topic和partition关系图清晰的表明了这二者之间的关系:topic是由多个partition组成的,而没个partition是不可修改的有序的消息序列.没个partition都有自己专属的partition号,通常是从0开始的, DK.Kafka用户对partition唯一能做的操作就是在消息序列的末尾追加消息partition上的每一条消息都会被分配到一个唯一的编号.按照DK.Kafka的描述来讲该序列号可以被称为 offset(位移),该位移是从0开始的顺序递增.位移是指定DK.Kafka的中其中一个partition中的一条消息。

DK.Kafka的partition没有太多的业务逻辑,partition的引入更多的是为了提升DK.Kafka的吞吐量。

DK.Kafka 中topic partition下的每条消息都会分配一个offset(位移) , DK.Kafka消费端也有offset的概念,但一定要注意2个offset的概念不相同.虽然每条消息在某个partition的offset是固定的,但是消费partition的消费者的offset会随着消费的进度不断前移,终究不可能超过改partition的最新一条消息的offset. 所以综上所述topic partition 、offset是DK.Kafka基础。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180817B1H0F500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券