分布式 - 消息队列Kafka:项目中kafka配置文件和命令行操作

news2024/9/9 0:01:39

文章目录

    • 1. kafka 配置文件
      • 1.1 进入kafka的安装目录
      • 1.2 查看kafka的配置文件
      • 1.3 启动 kafka-0 中的 kafka实例
    • 2. kafka 主题
      • 2.1 创建主题并查看详情
      • 2.2 查看当前容器中的所有主题
      • 2.3 删除主题
    • 3. kafka 生产者
    • 4. kafka 消费者

1. kafka 配置文件

1.1 进入kafka的安装目录

① 获取 kafka pod 资源:

XDR2.0.36.0(10.65.196.232) ~ #  kubectl get pod -n kafka
NAME                READY   STATUS    RESTARTS         AGE
kafka-0             1/1     Running   8 (3d21h ago)    133d
kafka-1             1/1     Running   3 (3d21h ago)    75d
kafka-2             1/1     Running   8 (3d21h ago)    133d
kafka-zookeeper-0   1/1     Running   4 (3d21h ago)    280d
kafka-zookeeper-1   1/1     Running   1 (3d21h ago)    75d
kafka-zookeeper-2   1/1     Running   29 (3d21h ago)   286d

② 进入 kafka-0 容器:

XDR2.0.36.0(10.65.196.232) ~ # kubectl exec -it kafka-0 -n kafka -- bash

I have no name!@kafka-0:/$ ls
bin  bitnami  boot  dev  docker-entrypoint-initdb.d  entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  run.sh  sbin  scripts  srv  sys  tmp  usr  var

③ 进入 kafka-0 的安装目录:

I have no name!@kafka-0:/$ cd /opt/bitnami/kafka/bin/

I have no name!@kafka-0:/opt/bitnami/kafka/bin$ ls
connect-distributed.sh        kafka-configs.sh             kafka-delete-records.sh   kafka-preferred-replica-election.sh  kafka-server-stop.sh                windows
connect-mirror-maker.sh       kafka-console-consumer.sh    kafka-dump-log.sh         kafka-producer-perf-test.sh          kafka-streams-application-reset.sh  zookeeper-security-migration.sh
connect-standalone.sh         kafka-console-producer.sh    kafka-features.sh         kafka-reassign-partitions.sh         kafka-topics.sh                     zookeeper-server-start.sh
jaas.conf                     kafka-consumer-groups.sh     kafka-leader-election.sh  kafka-replica-verification.sh        kafka-verifiable-consumer.sh        zookeeper-server-stop.sh
kafka-acls.sh                 kafka-consumer-perf-test.sh  kafka-log-dirs.sh         kafka-run-class.sh                   kafka-verifiable-producer.sh        zookeeper-shell.sh
kafka-broker-api-versions.sh  kafka-delegation-tokens.sh   kafka-mirror-maker.sh     kafka-server-start.sh                trogdor.sh

I have no name!@kafka-0:/opt/bitnami/kafka/bin$ cd ../config

I have no name!@kafka-0:/opt/bitnami/kafka/config$ ls
connect-console-sink.properties    connect-file-sink.properties    connect-mirror-maker.properties  kafka_jaas.conf      server.properties       zookeeper.properties
connect-console-source.properties  connect-file-source.properties  connect-standalone.properties    log4j.properties     tools-log4j.properties
connect-distributed.properties     connect-log4j.properties        consumer.properties              producer.properties  trogdor.conf

I have no name!@kafka-0:/opt/bitnami/kafka/config$

1.2 查看kafka的配置文件

① kafka-0 的配置文件 server.properties

broker.id=0

# 允许外部端口连接
listeners=INTERNAL://:9093,CLIENT://:9092,EXTERNAL://:9094

# 代理地址
advertised.listeners=INTERNAL://kafka-0.kafka-headless.kafka.svc.cluster.local:9093,CLIENT://kafka-0.kafka-headless.kafka.svc.cluster.local:9092,EXTERNAL://10.65.196.104:32111

# kafka日志的存储目录
log.dirs=/bitnami/kafka/data

# 分区数量
num.partitions=3

# zookeeper的连接地址
zookeeper.connect=kafka-zookeeper

② kafka-1的配置文件 server.properties

kubectl exec -it kafka-1  -n kafka bash
cd /opt/bitnami/kafka/config
broker.id=1

# 允许外部端口连接
listeners=INTERNAL://:9093,CLIENT://:9092,EXTERNAL://:9094

# 代理地址
advertised.listeners=INTERNAL://kafka-1.kafka-headless.kafka.svc.cluster.local:9093,CLIENT://kafka-1.kafka-headless.kafka.svc.cluster.local:9092,EXTERNAL://10.65.196.104:32112

# kafka日志的存储目录
log.dirs=/bitnami/kafka/data

# 分区数量
num.partitions=3

# zookeeper的连接地址
zookeeper.connect=kafka-zookeeper

③ kafka-2 的配置文件 server.properties

kubectl exec -it kafka-2  -n kafka bash
cd /opt/bitnami/kafka/config
broker.id=2

# 允许外部端口连接
listeners=INTERNAL://:9093,CLIENT://:9092,EXTERNAL://:9094

# 代理地址
advertised.listeners=INTERNAL://kafka-2.kafka-headless.kafka.svc.cluster.local:9093,CLIENT://kafka-2.kafka-headless.kafka.svc.cluster.local:9092,EXTERNAL://10.65.196.104:32113

# kafka日志的存储目录
log.dirs=/bitnami/kafka/data

# 分区数量
num.partitions=3

# zookeeper的连接地址
zookeeper.connect=kafka-zookeeper

1.3 启动 kafka-0 中的 kafka实例

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

2. kafka 主题

2.1 创建主题并查看详情

I have no name!@kafka-2:/opt/bitnami/kafka/config$ kafka-topics.sh --bootstrape-server kafka-1.kafka-headless.kafka.svc.cluster.local:9093 --create --partitions 3 --replication-factor 3 --topic 7-29-test-1
Exception in thread "main" joptsimple.UnrecognizedOptionException: bootstrape-server is not a recognized option
        at joptsimple.OptionException.unrecognizedOption(OptionException.java:108)
        at joptsimple.OptionParser.handleLongOptionToken(OptionParser.java:510)
        at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:56)
        at joptsimple.OptionParser.parse(OptionParser.java:396)
        at kafka.admin.TopicCommand$TopicCommandOptions.<init>(TopicCommand.scala:688)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:53)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)

注意:这里之所以无法识别 --bootstrape-server 参数是因为kafka的版本低于2.2,应该使用 --zookeeper 参数:

I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --create --partitions 3 --replication-factor 3 --topic 7-29-test-1
Created topic 7-29-test-1.

I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --describe --topic 7-29-test-1
Topic: 7-29-test-1      PartitionCount: 3       ReplicationFactor: 3    Configs:
Topic: 7-29-test-1      Partition: 0    Leader: 0       Replicas: 0,1,2 Isr: 0,1,2
Topic: 7-29-test-1      Partition: 1    Leader: 1       Replicas: 1,2,0 Isr: 1,2,0
Topic: 7-29-test-1      Partition: 2    Leader: 2       Replicas: 2,0,1 Isr: 2,0,1
        
I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --create --partitions 3 --replication-factor 2 --topic 7-29-test-2
Created topic 7-29-test-2.

I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --describe --topic 7-29-test-2
Topic: 7-29-test-2      PartitionCount: 3       ReplicationFactor: 2    Configs:
Topic: 7-29-test-2      Partition: 0    Leader: 2       Replicas: 2,1   Isr: 2,1
Topic: 7-29-test-2      Partition: 1    Leader: 0       Replicas: 0,2   Isr: 0,2
Topic: 7-29-test-2      Partition: 2    Leader: 1       Replicas: 1,0   Isr: 1,0
        
I have no name!@kafka-1:/opt/bitnami/kafka$

其中,--zookeeper 参数用于指定 Kafka 集群中的 ZooKeeper 服务的地址。这个地址在kafka的配置文件config/server.properties 的 zookeeper.connect=kafka-zookeeper 属性中指定。

2.2 查看当前容器中的所有主题

I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --list
7-29
7-29-test
7-29-test-1
7-29-test-2

I have no name!@kafka-1:/opt/bitnami/kafka$

2.3 删除主题

I have no name!@kafka-1:/opt/bitnami/kafka$ kafka-topics.sh --zookeeper kafka-zookeeper --delete --topic 7-29-test-1
Topic 7-29-test-1 is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.

3. kafka 生产者

下面三种当时都可以:

I have no name!@kafka-1:/opt/bitnami/kafka/bin$ ./kafka-console-producer.sh  --producer.config ./jaas.conf --broker-list kafka.kafka.svc.cluster.local:9092 --topic  7-29-test-2
>
I have no name!@kafka-1:/opt/bitnami/kafka/bin$ ./kafka-console-producer.sh  --producer.config ./jaas.conf --broker-list kafka-1.kafka-headless.kafka.svc.cluster.local:9093 --topic  7-29-test-2
>
I have no name!@kafka-1:/opt/bitnami/kafka/bin$ ./kafka-console-producer.sh  --producer.config ./jaas.conf --broker-list kafka.kafka.svc.cluster.local:9092 --topic  7-29-test-2
>

--producer.config 参数指定的认证文件 jaas.conf :

(1) 获取认证用户名和密码:

XDR2.0.30.0(10.65.196.232) ~ # kubectl get secret -n xdr-comm-config root-account -o jsonpath="{.data.account}" | base64 --decode | grep kafka_client
 "kafka_client_password": "UmDlbDB3UqTLDeXxZW67",
 "kafka_client_username": "user1",

(2) 进入bin目录并生成 jaas.conf 认证文件:

kubectl exec -it kafka-0 -n kafka -- bash 
cd /opt/bitnami/kafka/bin/
cat > jaas.conf << EOF
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user1" password="UmDlbDB3UqTLDeXxZW67";
EOF

--broker-list 参数指定了Kafka生产者连接的broker列表。查看 kafka 的配置文件config/server.properties :

(1) 在配置文件中查找advertised.listenerslisteners属性,这个属性定义了Kafka broker监听的地址和端口。

(2) 如果advertised.listeners属性存在,使用它的值作为broker列表的连接地址和端口。如果不存在,使用listeners属性的值。

4. kafka 消费者

./kafka-console-consumer.sh --consumer.config ./jaas.conf --bootstrap-server kafka.kafka.svc.cluster.local:9092 --topic persistent://10001001/default/xdr_dealstatus_sync --from-beginning --property print.timestamp=true 

--consumer.config 参数指定的认证文件 jaas.conf :

(1) 获取认证用户名和密码:

XDR2.0.30.0(10.65.196.232) ~ # kubectl get secret -n xdr-comm-config root-account -o jsonpath="{.data.account}" | base64 --decode | grep kafka_client
 "kafka_client_password": "UmDlbDB3UqTLDeXxZW67",
 "kafka_client_username": "user1",

(2) 进入bin目录并生成 jaas.conf 认证文件:

kubectl exec -it kafka-0 -n kafka -- bash 
cd /opt/bitnami/kafka/bin/
cat > jaas.conf << EOF
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-512
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="user1" password="UmDlbDB3UqTLDeXxZW67";
EOF

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

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

相关文章

十日Python项目——第四日(用户中心—收货地址)

#前言&#xff1a; 在最近十天我会用Python做一个购物类项目&#xff0c;会用到DjangoMysqlRedisVue等。 今天是第四天&#xff0c;主要负责撰写用户中心部分的收货地址部分。若是有不懂大家可以先阅读我的前三篇博客以能够顺承。 若是大家基础有不懂的&#xff0c;小编前面…

C语言:字符串函数、内存函数剖析

字符串函数、内存函数剖析 一、字符串函数&#xff08;一&#xff09;求字符串长度1、strlen&#xff08;1&#xff09;库函数实现&#xff08;2&#xff09;自定义实现 &#xff08;二&#xff09;长度不受限制的字符串函数1、strcpy&#xff08;1&#xff09;库函数实现&…

宠物猫用空气净化器真的有用吗?值得买的猫用空气净化器牌子排名

作为一名6年资深铲屎官&#xff0c;每天铲猫砂盆的工作无疑是一项挑战。家中不仅弥漫着难以忍受的气味&#xff0c;而且家里的小孩和老人偶尔会因为过敏性鼻炎或结膜炎等问题感到不适。换毛季节尤其头疼&#xff0c;浮毛无处不在&#xff1a;沙发、外套、坐垫&#xff0c;甚至连…

学习008-02-04-08 Localize UI Elements(本地化UI元素)

Localize UI Elements&#xff08;本地化UI元素&#xff09; This lesson explains how to localize an XAF application. It describes how to translate UI elements into German and create a multi-language application. 本课介绍如何本地化XAF应用程序。它描述了如何将U…

【C语言】在限制定条件下数据移动

C语言 在限制定条件下数据移动 给定一个数组 nums&#xff0c;编写一个函数将所有0移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意&#xff0c;必须在不复制数组的情况下原地对数组进行操作。 作业题 解决思路及代码 要将数组中的所有 0 移动到数组的末…

数学中的连分式、无穷连根式、平方根

连分式 连分式&#xff08;continued fraction&#xff09;由和与倒数的多层嵌套构成&#xff0c;可以是有限的&#xff0c;也可以是无限的。 表达式&#xff1a;或 import mathdef fraction_to_continued_fraction(numerator, denominator, max_terms):"""计算…

WordPress原创插件:搜索引擎抓取首图seo图片

WordPress原创插件&#xff1a;搜索引擎抓取首图seo图片 插件设置 插件将在网站头部添加适当的meta标签&#xff0c;以便百度等搜索引擎抓取指定的固定图像。 插件下载 https://download.csdn.net/download/huayula/89596527

[Meachines] [Easy] Friendzone LFI+Python-OS库污染权限提升

信息收集 IP AddressOpening Ports10.10.10.123TCP:21,22,53,80,139,443,445 $ nmap -p- 10.10.10.123 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Lin…

vue项目上线打包后出现的问题

1、出现空白页 1.1 打包路径&#xff1a; module.exports {publicPath:./, //修改为绝对路径 } 修改完打包路径后build可以展示页面 1.2 路由模式&#xff1a; 项目上线要求是history模式&#xff0c;需要后端做重定向 前端自测可以使用hash模式 2、代理和环境变量 问题…

信创系统上的数据加密和防泄露该如何对应?

随着信息技术的快速发展和数字化转型的深入推进&#xff0c;关于信创加密和信创防泄露的信息安全问题日益凸显。特别是在国家战略层面&#xff0c;推动自主可控的信息技术体系建设成为重中之重。深信达信创沙盒作为一款基于国产操作系统&#xff08;如麒麟、统信等&#xff09;…

Hugo 部署与自动更新(Git)

文章目录 Nginx部署Hugonginx.confhugo.conf Hugo自动更新Hugo自动更新流程添加访问令牌添加web hookrust实现自动更新接口 Nginx部署Hugo nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;even…

大模型系统学习路线

随着技术的进步&#xff0c;大模型如OpenAI的GPT-4和Sora、Google的BERT和Gemini等已经展现出了惊人的能力-从理解和生成自然语言到创造逼真的图像及视频。所以掌握大模型的知识和技能变得越来越重要。 下面是学习大模型的一些建议&#xff0c;供大家参考。 必备基础知识 **…

爬虫实战-掌上高考网实战

1.确定需求&#xff1a;爬取什么数据爬取大学名称 2.找到数据源地址数据在哪个链接中https://api.zjzw.cn/web/api/?keyword&page1&province_id&ranktype&request_type1&size20&top_school_id[3703,2461,659,3117,597,1724]&type&uriapidata/…

【NPU 系列专栏 2.6 -- - NVIDIA Xavier SoC】

文章目录 NVIDIA Xavier SoCXavier 主要组件Xavier SoC 的型号Xavier SoC 的算力Xavier AGXXavier NXXavier 应用场景自动驾驶机器人物联网(IoT)医疗设备NPU 对比SummaryNVIDIA Xavier SoC 英伟达 Xavier SoC 是英伟达推出的一款高性能系统级芯片,专门为人工智能(AI)和自…

c# - - - ASP.NET Core 网页样式丢失,样式不对

c# - - - ASP.NET Core 网页样式丢失&#xff0c;样式不对 问题 正常样式是这样的。 修改项目名后&#xff0c;样式就变成这样了。底部的内容跑到中间了。 解决 重新生成解决方案&#xff0c;然后发布网站。 原因&#xff1a; 修改项目名之前的 div 上有个这个自定义属…

Mysql开启远程控制简化版,亲测有效

首先关闭防火墙 改表法 打开上图的CMD&#xff0c;输入密码进入&#xff0c;然后输入一下指令 1.use mysql; 2.update user set host % where user root;//更新root用户的权限&#xff0c;允许任何主机连接 3.FLUSH PRIVILEGES;//刷新权限&#xff0c;使更改生效 具体参考…

详解 @RequestHeader 注解在 Spring Boot 中的使用

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

JS+H5在线文心AI聊天(第三方接口)

源码在最后面 调用的不是文心官方接口 可以正常聊天 有打字动画 效果图 源代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…

文献笔记|综述|A Survey of Large Language Models (前3章)

A Survey of Large Language Models 题目&#xff1a;大语言模型综述 作者&#xff1a;Wayne Xin Zhao, Kun Zhou, Junyi Li et al. 来源&#xff1a;arXiv 单位&#xff1a;中国人民大学高瓴人工智能学院、中国人民大学信息学院 关键词&#xff1a;Large Language Models; Eme…

如何快速获取全网精准客流?揭秘不为人知的5大运营策略!

有同行所在的地方&#xff0c;就一定拥有咱们需要的客户。客户看的是结果&#xff0c;搜索的是问题&#xff0c;寻找的是答案。 如果没有付费流量&#xff0c;单纯靠搞免费流量&#xff0c;很多大厂的运营也会变得一文不值。一个牛逼的运营&#xff0c;不仅是会做付费流量&…