Kafka - Kafka应用场景|基础架构|Windows安装|命令行操作

news2024/10/7 10:19:18

文章目录

      • 1. 消息队列的应用场景
      • 2. 消息队列的两种模式
      • 3. Kafka 的基础架构
      • 4. Kafka 的安装
      • 5. Kafka 命令行操作
        • 1. 主题命令行操作
        • 2. 生产者命令行操作
        • 3. 消费者命令行操作

1. 消息队列的应用场景

传统的消息队列的主要应用场景包括:缓存/消峰、解耦和异步通信。

① 缓冲/消峰:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

在这里插入图片描述

② 解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

在这里插入图片描述

③ 异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。

在这里插入图片描述

2. 消息队列的两种模式

① 点对对模式:消费者主动拉取数据,消息收到后清除消息

在这里插入图片描述

② 发布订阅模式:

  • 可以有多个topic主题(浏览、点赞、收藏、评论等);

  • 消费者消费数据之后,不删除数据;

  • 每个消费者相互独立,都可以消费到数据;

在这里插入图片描述

3. Kafka 的基础架构

在这里插入图片描述

  • Producer:消息生产者,就是向 Kafka broker 发消息的客户端。
  • Consumer:消息消费者,向 Kafka broker 取消息的客户端。
  • Consumer Group:消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • Broker:一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。
  • Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topic。
  • Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。
  • Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个Follower。
  • Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。
  • Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

4. Kafka 的安装

① http://kafka.apache.org/downloads下载kafka的kafka_2.12-2.3.0.tar

② 修改 zookeeper.properties 文件:

# the directory where the snapshot is stored.
dataDir=F:/install/kafka/Zookeeper/data

③ 修改server.properties文件:

log.dirs=F:/install/kafka/data

④ 在cmd窗口启动Zookeeper服务器:

F:\install\kafka\kafka_2.12-2.3.0>bin\windows\zookeeper-server-start.bat config\zookeeper.properties

zookeeper-server-start.bat :启动zookeeper服务端

config\zookeeper.properties:利用config目录下的这个配置文件来启动

⑤ 重新开启一个cmd窗口启动Kafka服务端:

F:\install\kafka\kafka_2.12-2.3.0>bin\windows\kafka-server-start.bat config/server.properties

kafka-server-start.bat :启动kafka

config/server.properties:利用config目录下的这个配置文件启动

⑥ 重新开启一个cmd使用kafka:

# 创建主题
F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 -partitions 1 --topic test

# 查看对应服务器创建的主题
F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092
test

# 消息生产者发送消息
F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-console-producer.bat --broker-list localhost:9092 --topic test
>hello
>hello world!

⑦ 上个cmd窗口已被生产者占用,因此再开一个窗口作为消费者消费消息:

# 消费者消费主题test生产的消息
E:\KafKa\kafka_2.12-2.5.0\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
hello
hello world!

5. Kafka 命令行操作

1. 主题命令行操作

在这里插入图片描述

① 创建主题 topic:

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
												# 设置连接kafka broker主机名称和端口号
                                                --bootstrap-server localhost:9092 
                                                # 创建主题
                                                --create 
                                                # 处置分区数量为1
                                                --partitions 1 
                                                # 设置副本数量为1,副本数量需要小于集群服务器数量
                                                --replication-factor 1 
                                                # 设置主题的名称
                                                --topic test2

② 查看当前服务器中的所有 topic:

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
                                                --bootstrap-server localhost:9092 
                                                # 查看所有主题
                                                --list
__consumer_offsets
test
test1
test2

③ 查看test 主题的详情:

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
                                                --bootstrap-server localhost:9092 
                                                # 查看主题详细描述
                                                --describe 
                                                --topic test 
Topic:test   PartitionCount:1   ReplicationFactor:1     Configs:segment.bytes=1073741824
Topic: test     Partition: 0    Leader: 0       Replicas: 0     Isr: 0

④ 修改分区数,分区数只能增加不能减少:

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
                                                --bootstrap-server localhost:9092 
                                                # 修改主题
                                                --alter 
                                                --topic test 
                                                # 修改分区数
                                                --partitions 2

⑤ 再次查看 test 主题的详情:

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
                                                --bootstrap-server localhost:9092 
                                                --describe 
                                                --topic test
Topic:test   PartitionCount:2   ReplicationFactor:1    Configs:segment.bytes=1073741824
Topic: test     Partition: 0    Leader: 0       Replicas: 0     Isr: 0
Topic: test     Partition: 1    Leader: 0       Replicas: 0     Isr: 0

⑥ 删除 topic :

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-topics.bat 
                                                --bootstrap-server localhost:9092 
                                                # 删除主题
                                                --delete 
                                                --topic test2

2. 生产者命令行操作

在这里插入图片描述

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-console-producer.bat 
                                                --broker-list localhost:9092 
                                                --topic test
>hello
>haha
>

3. 消费者命令行操作

在这里插入图片描述

F:\install\kafka\kafka_2.12-2.3.0\bin\windows>kafka-console-consumer.bat 
                                                --bootstrap-server localhost:9092 
                                                --topic test 
                                                --from-beginning
hello
haha

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Packet Tracer - 配置多区域 OSPFv3

地址分配表 设备 接口 IPv6 地址 OSPF 区域 RA G0/0 2001:DB8:1:A1::1/64 1 G0/1 2001:DB8:1:A2::1/64 1 S0/0/0 2001:DB8:1:AB::2/64 0 本地链路 FE80::A 不适用 RB G0/0 2001:DB8:1:B1::1/64 0 S0/0/0 2001:DB8:1:AB::1/64 0 S0/0/1 2001:DB8:1:BC:…

JVM运行时数据区域之PCRegister和虚拟机栈

运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据 区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启 动而一直存在,有些区域则是依赖用户线程的启动和结束而建立…

群晖NAS搭建WebDav服务,并内网穿透实现公网访问

WebDAV是基于HTTP协议的通信协议。适用于有些客户限制于其他协议,要求使用WebDAV协议进行数据传输的,下面是通过WebDAV协议来访问群晖NAS的设置教程。 1. 在群晖套件中心安装WebDav Server套件 点击打开套件中心,并搜索webdav,点…

性能测试-linux-top/vmstat/dstat命令,闭着眼睛也要背出来

目录 Linux系统差异化 Ubuntu安装应用 CentOS安装应用 Linux通用安装,tar.gz包 Linux系统帮助命令 help/man/info Linux系统中树状结构查看文件 Linux系统中文件类型区分与权限 Linux系统中都有哪些文件夹及其作用 Linux性能测试分析-TOP命令(重点) Linu…

NFV关键技术:DPDK技术栈在网络云中的最佳实践

本文篇幅有限,很难用短短几语就勾勒出DPDK的完整轮廓,概括来说,DPDK是一个技术栈,主要用于Intel架构的服务器领域,其主要目的就是提升x86标准服务器的转发性能。因此,本文只重点介绍DPDK平台部分技术在电信…

基于stm32单片机智能温控风扇控制系统Proteus仿真

资料编号:103 下面是相关功能视频演示: 103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码仿真全套资料)功能介绍:采用stm32单片机、ds18b20温度传感器采集温度,通过判断当前的温度值是否超过预设…

程序员怎样才能写出一篇好的博客或者技术文章?

文章目录来分享下鹅厂多位技术同学关于如何写好技术文章的经验。**1 为什么要写文章****1.1 对作者的好处****1.1.1 复盘学习成果,巩固知识理解****1.1.2 提升思考能力****1.1.3 传播技术知识,积累技术资产****1.1.4 提升表达与总结能力****1.1.5 打造个…

尚医通 (二十五) --------- 医院接口开发

目录一、医院系统模拟接口1. 服务部署2. 操作说明3. 上传接口与回调接口① 业务术语② 安全控制③ 业务接口④ 平台接口⑤ 医院接口二、集成 MongoDB三、添加医院基础类四、上传医院五、参数签名六、图片 Base64 编码七、查询医院接口一、医院系统模拟接口 1. 服务部署 ① 找…

刷题笔记之十二(快到碗里来+跳台阶+变态跳台阶+不用加减乘除做加法+三角形+猴子分桃+反转部分单向链表)

目录 1. 快到碗里来 2. 跳台阶 3. 变态跳台阶 4. ConcurrentHashMap使用lock关键字保证线程安全;Arrays.asList返回值是List接口对象 5. 字符串对象比较相等,使用equals比较内容;使用 比较的是地址 6. 编译命令: javac 源文件名称.java; 运行命令: java 主类名称 要传递的…

第七章第二节:B树和B+树

文章目录教程:1. B树1.1 B树的定义1.2 B树的高度1.3 B树的插入和 删除1.4 B树的删除1.5 总结:2. B树2.1 B树的查找2.2 B树与B树的对比2.3 总结教程: B树: https://www.bilibili.com/video/BV1b7411N798/?p72&share_sourceco…

深入理解MySQL数据库(Innodb存储引擎)

1.BTree 什么是B Tree 1)树中每个结点至多有M棵子树(即至多含有m-1个关键字) 2)若根节点不是终端结点,则至少有两颗子树 3)所有的叶子结点都出现在同一层次上,并且不带信息 什么是BTree …

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程仿真工程源代码答辩论文答辩PPT) 文章目录【毕业设计】37-基于单片机智能楼宇消防监控系统设计(原理图工程仿真工程源代码答辩论文答辩PPT)资料下载链接任务书设计说…

Redis集群(Cluster)

Redis集群(Cluster) 单台redis容量限制,如何进行扩容?继续加内存、加硬件么?单台redis并发写量太大有性能瓶颈,如何解决?redis3.0中提供了集群可以解决这些问题。 redis集群是对redis的水平扩容,即启动N个…

静态后台管理(9页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 |学生管理系统网页设计 | OA管理系统 | 后台管理模板 | 智能停车系统 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 H…

C++ Visual Studio 2022 中的改进、行为更改和错误修复

目录 Visual Studio 2022 版本 17.4 中的一致性改进 作用域的基础类型没有固定类型enum 定义中没有固定基础类型的枚举器类型enum Visual Studio 2022 版本 17.3 中的一致性改进 改进了指针之间的修饰符兼容性检查 Visual Studio 2022 版本 17.2 中的一致性改进 未终止的双向…

【分隔结构】定从分离

形式 先行词 其他定语 定语从句先行词 状语 定语从句作主语的先行词 谓语 定语从句 练习一 他们从一部分人来说,是受到了 1998 年才获得的 DNA 证据的启发,这份 DNA 证据,几乎肯定的证明了 Thomas Jefferson 和 他的奴隶 Sally Hemin…

力扣(LeetCode)16. 最接近的三数之和(C++)

双指针 快排使 numsnumsnums 正序。 设置三个指针 iii 指向 numsnumsnums 第一个数,从前往后枚举 nums[i]nums[i]nums[i] , lll 从 nums[i1]nums[i1]nums[i1] 往后,指向第二个数,rrr 从 nums.size()−1nums.size()-1nums.size()…

【博客539】使用openssl手动为k8s集群签发证书

使用openssl手动为k8s集群签发证书 创建ca私钥和ca证书 1、生成ca私钥:生成一个 2048 位的 ca.key 文件 openssl genrsa -out ca.key 2048 2、基于ca私钥,生成根(root)证书:在 ca.key 文件的基础上,生成 ca.crt 文件 openssl re…

[MQ] 交换机与队列的介绍

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

[Spring Cloud] Open Feign 使用

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…