KafKa快速入门

一、为什么使用消息队列

1.使用同步的通信方式来解决多个服务之间的通信
在这里插入图片描述
同步的通信方式会存在性能和稳定性的问题

2.使用异步的通信方式
在这里插入图片描述
针对于同步的通信方式来说,异步的方式,可以让上游快速成功,极大提高了系统的吞吐量,而且在分布式系统中,通过下游服务多个服务的分布式事务的保障,也能保障业务执行之后的最终一致性。

二、什么是消息队列

在这里插入图片描述

三、消息队列的流派

目前消息队列中间件选型有很多种

  • rabbitMQ
  • rocketMQ:阿里内部的一个大神,根据kafka内部原理手写的一个消息队列中间件
  • kafka: 全球消息处理性能最快的一个
  • zeroMQ

消息队列大致分为两种

  • 有Broker的MQ

重topic(kafka、rocketMQ、ActiveMQ):整个broker,依据topic来进行消息的中转,在重topic的消息队列里必然需要topic的存在

轻topic(rabbitMQ):topic只是其中的一种中转模式。

  • 无Broker的MQ(zeroMQ)

在生产者和消费者中没有使用broker,直接使用socket进行通信。

这个Broker主要就是控制消息的中转,生产者把消息发送给它就结束了自己的任务了,Broker则把消息主动推送给消费者(或者消费者主动轮询)
在这里插入图片描述
在这里插入图片描述

四、kafka介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
kafka中的一些基本概念
在这里插入图片描述
在这里插入图片描述
创建topic

  • 通过kafka命令向zk中创建一个主题
./kafka-topics.sh --create --zookeeper 10.10.6.44:2181 --replication-factor 1 --partitions 1 --topic test
  • 查看当前zk中所有的主题
./kafka-topics.sh --list --zookeeper 10.10.6.44:2181

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

./kafka-console-producer.sh --broker-list 10.10.6.44:9092 --topic test

消费消息
对于consumer kafka同样也携带了一个命令行客户端,会将获取到内容在命令行中进行输出,默认是消费最新的消息,使用kafka的消费者消息的客户端,从指定kafka服务器的指定topic中消费消息

  • 方式一:从最后一条消息的偏移量+1开始消费
./kafka-console-consumer.sh --bootstrap-server 10.10.6.44:9092 --topic test
  • 方式二:从头开始消费
 ./kafka-console-consumer.sh --bootstrap-server 10.10.6.44:9092 --from-begining  --topic test

在这里插入图片描述
单播消息
在一个kafka的topic中,启动两个消费者,一个生产者,问:生产者发送消息时,这条消息是否可以同时被两个消费者消费?

  • 如果多个消费者在同一个消费组,那么只有一个消费者可以收到订阅topic中的消息,换言之,同一个消费组中只能有一个消费者收到一个topic中的消息
./kafka-console-consumer.sh --bootstrap-server 10.10.6.44:9092 --consumer-property group.id=testGroup --topic test

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

./kafka-console-consumer.sh --bootstrap-server 10.10.6.44:9092 --consumer-property group.id=testGroup1--topic test

在这里插入图片描述
查看消费组及信息

#查看当前主题下有哪些消费组
./kafka-consumer-groups.sh --bootstrap-server 10.10.6.44:9092 --list
#查看消费组中的具体信息:比如当前偏移量、最后一条消息的偏移量、堆积的消息数量
./kafka-consumer-groups.sh --bootstrap-server 10.10.6.44:9092 --describe --group testGroup

在这里插入图片描述
重点关注一下几个信息

  • current-offset:最后被消费的消息的偏移量
  • Log-end-offset:消息总量(最后一条消息的偏移量)
  • Lag:积压了多少条消息
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一些步骤,可以帮助你快速入门Kafka: 1. 下载并安装Kafka:首先,你需要下载并安装Kafka。你可以从官方网站上下载Kafka:https://kafka.apache.org/downloads。根据你的操作系统选择正确的版本下载并安装。 2. 启动Kafka服务器:安装完成后,你需要启动Kafka服务器。使用终端,进入Kafka文件夹并运行以下命令: ```bash bin/zookeeper-server-start.sh config/zookeeper.properties ``` 然后,在另一个终端窗口中,启动Kafka服务器: ```bash bin/kafka-server-start.sh config/server.properties ``` 3. 创建一个主题:在Kafka中,消息被发送到主题。你需要创建一个主题,以便你可以在其中发布和消费消息。使用以下命令创建一个名为“test”的主题: ```bash bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 ``` 4. 发布消息:现在,你可以向“test”主题发布消息。使用以下命令将消息“Hello, Kafka!”发布到主题: ```bash bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 ``` 5. 消费消息:你可以使用以下命令从“test”主题中消费消息: ```bash bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092 ``` 这将从主题的开头开始读取消息,并将它们打印到控制台上。 这些是入门Kafka的基本步骤。当你掌握了这些基础知识后,你可以进一步了解Kafka的更高级功能和用法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值