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

devtools/2024/9/19 3:34:20/ 标签: 分布式, kafka, linq

文章目录

    • 1. kafka 配置文件
    • 2. kafka 主题
      • 2.1 创建主题并查看详情
      • 2.2 查看当前容器中的所有主题
      • 2.3 删除主题
    • 3. kafka 生产者
    • 4. kafka 消费者

kafka__1">1. kafka 配置文件

kafka_2">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 -- bashI 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.shI have no name!@kafka-0:/opt/bitnami/kafka/bin$ cd ../configI 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.confI have no name!@kafka-0:/opt/bitnami/kafka/config$

kafka_49">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

kafka0__kafka_124">1.3 启动 kafka-0 中的 kafka实例

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

kafka__130">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 optionat 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,1I 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,0I 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-2I 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.

kafka__192">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属性的值。

kafka__242">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.ppmy.cn/devtools/88774.html

相关文章

学习C语言遇到的问题

前言 这是博主在班训班培训期间学习C基础过程中遇到的一些问题&#xff0c;我把遇到的问题以及这些问题的解答链接统一放在这篇文章了。这只是博主遇到的一些问题&#xff0c;可能不会适用于全部人&#xff0c;希望大家把这篇文章当做查漏补缺的内容吧。 问题一:把字符串赋给…

基于人工智能的口试模拟、LLM将彻底改变 STEM 教育

概述 STEM教育是一种整合科学&#xff08;Science&#xff09;、技术&#xff08;Technology&#xff09;、工程&#xff08;Engineering&#xff09;和数学&#xff08;Mathematics&#xff09;的教育方法。这种教育模式旨在通过跨学科的方式培养学生的创新能力、问题解决能力…

Yolov8在RK3588上进行自定义目标检测(一)

1.数据集和训练模型 项目地址&#xff1a;https://github.com/airockchip/ultralytics_yolov8.git 从github(htps:l/github.com/airockchip/ultralytics_yolov8)上获取yolov8模型。 下载项目&#xff1a; git clone https://github.com/airockchip/ultralytics_yolov8.git …

C++第三十弹---C++继承机制深度剖析(中)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、派生类的默认成员函数 1.1、派生类的构造函数 1.2、派生类的拷贝构造函数 1.3、派生类的赋值重载 1.4、派生类的析构函数 2、继承与友元 …

程序员冷笑话(5)你,秒懂了吗

周末放松第5期下&#xff0c;不讲编程技术&#xff0c;来看看几个冷笑话......想知道有多少人是秒懂的&#xff0c;欢迎大家分享身边的搞笑趣事。 时间过得好快&#xff0c;有时候发现敲敲代码&#xff0c;日子就这么过去了......

【优秀python案例】基于python爬虫的深圳房价数据分析与可视化实现

现如今&#xff0c;房价问题一直处于风口浪尖&#xff0c;房价的上涨抑或下跌都牵动着整个社会的利益&#xff0c;即便是政府出台各种政策方针也只能是暂时抑制楼市的涨势&#xff0c;对于需要买房的人来说&#xff0c;除了关注这些变化和政策外&#xff0c;还有一个非常头疼的…

IPython概览

IPython概览 相信使用过python的人一定对notebook不陌生&#xff0c;他是一个交互式的框架&#xff0c;其内核就是IPython。 许多编辑器都已经默认支持IPython,比如Vscode&#xff0c;只要将文件名后缀改为.ipynb即可。 Jupyter的内核也是IPython。IPython所有版本都是开源的 …

【AI实践】阿里云方言文本转语音TTS

最近要做一些普通话和方言demo 找一个免费工具 免费在线文字转语音工具 | edge-tts 在线体验 (bingal.com) 还有一些方言在阿里云上找了下&#xff0c;基于官方demo改了一下 阿里云语音合成接口说明_智能语音交互(ISI)-阿里云帮助中心 (aliyun.com) 如何下载安装、使用语音…

Golang | Leetcode Golang题解之第307题区域和检索-数组可修改

题目&#xff1a; 题解&#xff1a; type NumArray struct {nums, tree []int }func Constructor(nums []int) NumArray {tree : make([]int, len(nums)1)na : NumArray{nums, tree}for i, num : range nums {na.add(i1, num)}return na }func (na *NumArray) add(index, val …

Bugku-Web篇:Simple_SSTI_1

1.很简单的模板注入&#xff0c;直接f12查看源代码。 2.这里了解了一下什么是模板注入 这里针对的是flask模板&#xff0c;config是flask模板中的一个全局对象。包含了所有应用程序的配置值。 这里直接在url中写上 ?flag{{config.SECRET_KEY}}

论文翻译 | Is a Question Decomposition Unit All We Need? 我们是否只需要一个‘问题分解单元’?

摘要 大型语言模型(LMs)已经在许多自然语言处理(NLP)基准测试中取得了最先进的性能。 随着新基准数量的增加&#xff0c;我们构建了更大、更复杂的LM。然而&#xff0c;由于与之相关的成本、时间和环境影响&#xff0c;构建新的LM可能不是一个理想的选择。我们探索了另…

5.6软件工程-运维

运维 系统转换系统维护系统评价练习题 系统转换 新老系统的转换 系统转换是指&#xff1a;新系统开发完毕&#xff0c;投入运行&#xff0c;取代现有系统的过程&#xff0c;需要考虑多方面的问题&#xff0c;以实现与老系统的交接&#xff0c;有一下三种转换计划&#xff1a; …

c++实操程序之进度条

前言 Hello&#xff0c;大家好&#xff0c;我是文宇。 今天闲着没事写了一个进度条。 代码 #include<windows.h> #include<bits/stdc.h> using namespace std; int j; int main() {system("color f");for (int i 1; i < 50; i) {system("cl…

Python爬虫基础:爬取网页内容解析标题

当你需要从网页上获取数据并进行处理时&#xff0c;Python的BeautifulSoup和requests库是非常强大的工具。这些库可以帮助你发送HTTP请求&#xff0c;获取网页内容&#xff0c;并解析HTML以提取所需的信息。在这篇博客文章中&#xff0c;我们将详细介绍如何使用这些库从网页上获…

工业人工智能真的能落地吗?

文章目录 前言Part1 聊聊技术1 人工智能、机器学习和深度学习的关系2 优化思想的一个案例 part2 聊聊业务3 工业人工智能与消费互联网人工智能的区别3.1 消费互联网中人工智能的应用3.2 为什么如此成熟的消费互联网人工智能扩展到工业场景那么难 4 工业互联网人工智能的发展方向…

如何在 Debian 上安装运行极狐GitLab Runner?【二】

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

OpenCV||超详细的图像处理模块

一、颜色变换cvtColor dst cv2.cvtColor(src, code[, dstCn[, dst]]) src: 输入图像&#xff0c;即要进行颜色空间转换的原始图像。code: 转换代码&#xff0c;指定要执行的颜色空间转换类型。这是一个必需的参数&#xff0c;决定了源颜色空间到目标颜色空间的转换方式。dst…

Python 爬虫项目实战(一):破解网易云 VIP 免费下载付费歌曲

前言 网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也称为网页蜘蛛&#xff08;Web Spider&#xff09;或网页机器人&#xff08;Web Bot&#xff09;&#xff0c;是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓…

Springboot启动流程

Springboot启动流程 加载配置文件、创建 ApplicationContext、执行自动配置、执行启动任务、启动 Web 服务器。 1、加载应用程序的配置文件。Spring Boot 默认会加载 application.yml 和 application.properties 文件作为应用程序的配置文件&#xff0c;也可以通过 spring.co…

C#中DataTable新增列、删除列、更改列名、交换列位置

C#中DataTable新增列、删除列、更改列名、交换列位置 一、新增列 1.1、新增列 /*新增列*/ dataTable.Columns.Add("列名称", Type.GetType("数据类型")); /*比如添加【name】列&#xff0c;string类型的内容*/ dataTable.Columns.Add("name&…