kafka安装及收发消息

kafka需要与zookeeper配合使用,但是从2.8版本kafka引入kraft,也就是说在2.8后,zookeeper和kraft都可以管理kafka集群,这里我们依然采用zookeeper来配合kafka。
1、首先我们下载zookeeper
下载地址为
https://zookeeper.apache.org/releases.html#download
(选择版本为3.7.2)
然后上传到服务器,解压后如下

drwxr-xr-x. 2 limuzi limuzi  4096 Oct  6  2023 bin
drwxr-xr-x. 2 limuzi limuzi    92 May 12 01:33 conf
drwxr-xr-x. 5 limuzi limuzi  4096 Oct  6  2023 docs
drwxrwxr-x. 2 limuzi limuzi  4096 May  9 06:04 lib
-rw-r--r--. 1 limuzi limuzi 11358 Oct  6  2023 LICENSE.txt
drwxrwxr-x. 2 limuzi limuzi    74 May  9 06:05 logs
-rw-r--r--. 1 limuzi limuzi  2084 Oct  6  2023 NOTICE.txt
-rw-r--r--. 1 limuzi limuzi  2214 Oct  6  2023 README.md
-rw-r--r--. 1 limuzi limuzi  3570 Oct  6  2023 README_packaging.md

进入到conf目录下,执行如下命令,copy一个zk的配置文件

cp zoo_sample.cfg zoo.cfg

进入到zoo.cfg的配置文件中,修改相关参数

dataDir=/home/limuzi/software/zookeeper/zookeeper_data

如上所示修改zk的数据存储位置

clientPort=2181

zk的启动端口为2181,这里我们不做修改
2、下载3.5版本的kafka
下载地址为:
https://kafka.apache.org/downloads
如图所示:
在这里插入图片描述
2.13是scala语言的版本,整个大版本是3.5的
(因为kafka的producer 和 consumer是用java语言写的,broker是用scala语言写的)
把压缩包上传到服务器解压,进入解压后的config文件,修改以下参数,

#设置broker的消息存储时间为180s,180s后消息删除
log.retention.ms=180000
#设置zk的连接地址,我这里是zk的单节点,不是集群,且启动端口是默认的2181
zookeeper.connect=localhost:2181
#listeners 是 Kafka 集群中用于接受客户端连接的网络监听器配置参数。通过设置 listeners 参数,你可以指定 Kafka 服务器监听客户端连接的网络地址和端口
#在 Kafka 的 server.properties 配置文件中,listeners 参数的默认值为 PLAINTEXT://hostname:9092,
#其中 hostname 是 Kafka 服务器的主机名或 IP 地址。这意味着 Kafka 服务器将在默认端口 9092 上监听来自客户端的连接请求
#这里要设置,要不然在java客户端连接不上kafka
listeners=PLAINTEXT://192.168.47.145:9092
#当前broker的id,这里我们是测试单节点,所以不用修改,
#如果是kafka集群(假如有三台服务器),那么分别需要修改为0,1,2
broker.id=0
#kafka文件存储的位置,整个文件里面存储有log文件和index文件,关于这两个文件的作用后续会说明
log.dirs=/home/limuzi/software/kafka_2.13-3.5.0/kafka_data

3、启动zk和kafka
首先启动zk,进入到zk安装的bin目录下,执行如下命令

./zkServer.sh start

查看zk是否启动成功

./zkServer.sh status

如果 ZooKeeper 服务已经成功启动,应该会显示类似于 Mode: standalone 的信息
启动kafka
进入到kafka安装目录的bin目录下

./kafka-server-start.sh ../config/server.properties &

加上 & 表示后台启动
4、在控制台测试收发消息
首先用命令创建topic,进入到安装目录bin目录下执行如下脚本,创建了一个topic=test,分区为1,副本数为1

./bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

开启生产者:进入到bin目录下,执行如下命令

./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test

然后在控制台可以输入消息
开启消费者:新开一个窗口,进入到bin目录下,执行如下命令

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

在控制台可以看到刚刚生产者发送的消息

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

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

相关文章

智能运维:构建高效统一的运维管理平台

随着信息技术的迅猛发展,企业IT系统的规模和复杂性日益增加,传统的运维模式已难以满足现代企业的需求。为了应对这一挑战,智能运维管理系统应运而生,它通过引入人工智能、大数据、云计算等先进技术,为企业提供高效、智…

三. TensorRT基础入门-剖析ONNX架构并理解ProtoBuf

目录 前言0. 简述1. 执行一下我们的python程序2. ONNX是什么?3. onnx中的各类Proto3.1 理解onnx中的ValueInfoProto3.2 理解onnx中的TensorProto3.3 理解onnx中的NodeProto3.4 理解onnx中的AttributeProto3.5 理解onnx中的GraphProto3.6 理解onnx中的ModelProto 4. …

算法提高之单词接龙

算法提高之单词接龙 核心思想&#xff1a;dfs 预处理每两个字符串之间最短的公共部分长度 求最短公共 最终字符串是最长 dfs所有开头字符串 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 25;int g[N][N…

【js函数name属性】

js函数的name属性 var a{sayName:function(){//函数自带name属性&#xff0c;可以获取函数名&#xff0c;但是不可以获取调用对象console.log(a.sayName.name);}}//函数可以作为对象使用&#xff0c;用.添加属性a.sayName.name2as666;a.sayName.speakfunction(){console.log(a…

Feign 和 OpenFeign 的区别

Feign 和 OpenFeign 都是用来进行服务间调用的客户端库&#xff0c;它们旨在简化HTTP API客户端的编写过程&#xff0c;使得编写对外部服务的接口就像调用本地方法一样简单。尽管它们有相似之处&#xff0c;但也存在一些关键差异&#xff1a; 归属和演进&#xff1a; Feign 最初…

大规模 RGB LED灯控系统 Lumos:创新与智能化的融合

灯控系统&#xff1a;创新与智能化的融合 在现代照明技术不断进步的背景下&#xff0c;灯控系统的应用已经从简单的开关控制&#xff0c;发展到能够进行复杂程控操作的智能化管理。我们推出的新一代灯控解决方案&#xff0c;凭借其高度的可配置性和跨平台兼容性&#xff0c;已…

React Native vs Flutter:2023年移动开发框架对比

React Native 和 Flutter 都是当前流行的跨平台移动应用开发框架&#xff0c;它们使开发者能够使用一套代码库开发同时运行在Android和iOS上的应用。尽管它们的目标相似&#xff0c;但这两个框架在设计理念、性能、生态系统和开发体验等方面有着明显的不同。以下是2023年React …

虚拟化数据恢复—误还原虚拟机快照怎么办?怎么恢复最新虚拟机数据?

虚拟化技术原理是将硬件虚拟化给不同的虚拟机使用&#xff0c;利用虚拟化技术可以在一台物理机上安装多台虚拟机。误操作或者物理机器出现故障都会导致虚拟机不可用&#xff0c;虚拟机中的数据丢失。 虚拟化数据恢复环境&#xff1a; 有一台虚拟机是由物理机迁移到ESXI上面的&a…

【车载开发系列】MCU概念简介

【车载开发系列】MCU概念简介 【车载开发系列】MCU概念简介 【车载开发系列】MCU概念简介一. 概念简介二. MCU发展历史1&#xff09;初始阶段2&#xff09;低性能阶段 三. 单片机的分类及应用四. 单片机的基本功能1&#xff09; Watchdog&#xff08;看门狗定时器&#xff09;2…

除了GET方法,新的HTTP QUERY方法规范发布

近日IETF提交新规范讨论&#xff1a;定义了一种新的 HTTP 方法QUERY&#xff0c;QUERY方法作为一种安全、幂等的请求方法&#xff0c;可以携带请求内容。 大多数情况下&#xff0c;当请求中传送的数据量太大而无法编码到请求的 URI 中时&#xff0c;推荐采取QUERY方式。 例如&a…

pikachu靶场(xss通关教程)

&#xff08;注&#xff1a;若复制注入代码攻击无效&#xff0c;请手动输入注入语句&#xff0c;在英文输入法下&#xff09; 反射型xss(get型) 1.打开网站 发现有个框&#xff0c;然后我们在框中输入一个“1”进行测试&#xff0c; 可以看到提交的数据在url处有显示&#xf…

Debian Linux 下给Nginx 1.26.0 编译增加Brotli算法支持

明月发现参考【给Nginx添加谷歌Brotli压缩算法支持】一文给出的方法&#xff0c;在Debian Linux 12.5下就一直编译失败&#xff0c;主要的错误是因为文件缺失&#xff0c;在专门又安装了apt-get install libbrotli-dev的依赖库后依然会因为文件缺失无法编译完成&#xff0c;就这…

ERP与MES与WMS集成

WMS储位管理 WMS与MES集成 (一) 打通追溯链 在拣货时&#xff0c;将配料标签与供应商的物料标签进行关联。通过配料标签达到精确追溯及防错目的。针对模糊查询&#xff0c;将工单与物料的供应商信息、仓库流转信息进行关联。 (二) WMS入库 成品(半成品)下线后&#xff0c;M…

draw.text((left, top - 15), text,font=font, fill=“green”)

这是一个Python PIL库中的方法&#xff0c;用于在图片上绘制文本。具体来说&#xff0c;它可以在指定的位置绘制指定的文本&#xff0c;并使用指定的字体、颜色等参数进行渲染。其中&#xff0c;left和top是文本绘制的左上角坐标&#xff0c;text是要绘制的文本内容&#xff0c…

齿轮滚刀刃口钝化技术简介

介绍 在滚刀的使用中发现&#xff0c;进口滚刀和国产滚刀在加工质量和寿命方面存在显著差异。经过多次比较得知&#xff0c;滚刀的使用寿命可以达到国产滚刀的两倍以上&#xff0c;而进口滚刀返回原厂磨削后的使用寿命约为新刀具的90% &#xff0c;但同样经过国内厂家磨削后&a…

【C语言项目】贪吃蛇(下)

个人主页~ 源码在Gitee仓库~ 上一篇贪吃蛇&#xff08;上&#xff09;~ 贪吃蛇 四、核心的实现游戏测试1、GameStart&#xff08;1&#xff09;控制台窗口大小和名字设置&#xff08;2&#xff09;光标隐藏&#xff08;3&#xff09;打印欢迎界面&#xff08;4&#xff09;创建…

CSS 包含块

前言&#xff1a;CSS 总的来说就两块&#xff0c;样式计算和视觉格式化模型&#xff0c;而包含块就是视觉格式化模型的重要内容&#xff0c;理解包含块的定义&#xff0c;对于 CSS 布局有更好的帮助。 1. 概念 什么叫包含块&#xff0c;指的是一个区域&#xff0c;某一个元素在…

azkaban-tools 项目介绍

本文背景 应一个用户的好心和好奇心&#xff0c;在最近水深火热的百忙之中抽时间写完了一个简短的项目介绍&#xff0c;其实就是几个azkaban的批量操作脚本&#xff0c;但在大数据集群的“运维生涯”中&#xff0c;还是帮了自己不少忙&#xff0c;也算是为了它做一个简单的回顾…

软件设计师考试——加密算法(对称,非对称)、重放攻击、内聚模式、scrum模型、CMM模型、MVC模式、桥接模式与适配器模式、事务具有的特性

加密算法 对称加密算法&#xff1a; 介绍&#xff1a;使用相同的密钥进行加密和解密。常见的对称加密算法包括DES、AES等。特点&#xff1a;加密和解密速度快&#xff0c;适合大数据量的加密&#xff1b;密钥管理相对简单。使用场合&#xff1a;适合于对数据进行加密传输或存储…

linux中passwd --stdin命令含义

linux中passwd --stdin命令的含义 在linux系统中&#xff0c;我们知道passwd是用来修改用户密码的命令。而--stdin是passwd命令的一个选项&#xff0c;用于从标准输入中读取密码。具体来说&#xff0c;使用passwd --stdin可以将标准输入中的内容作为新密码&#xff0c;通过管道…