kafka入坑

快速入门

使用 Strimzi 项目时,在 Kubernetes 上启动和运行 Apache Kafka 集群非常简单!

Kubernetes Kind 是一个 Kubernetes 集群,以单个 Docker 镜像的形式实现,并以容器的形式运行。它主要用于测试 Kubernetes 本身,但也可用于本地开发或 CI。

使用 Minikube 或 Minishift 的本地安装时,Kubernetes 集群在虚拟机内启动,运行 Linux 内核和 Docker 守护程序,消耗额外的 CPU 和 RAM。

另一方面,Kind 不需要额外的 VM - 它只是作为 Linux 容器运行,使用一组进程,使用与 Docker 守护程序相同的 Linux 内核。因此,它启动速度更快,消耗的 CPU 和 RAM 比其他方案更少,这在 Linux 主机上本地运行 Docker 守护程序时尤其明显。

Kubernetes Kind 目前不支持节点端口或负载均衡器。您将无法从 Kubernetes 环境外部轻松访问 Kafka 集群。如果您需要从外部访问,我们建议使用 Minikube。

api-resources

k api-resources | grep kaf
kafkabridges                       kb                     kafka.strimzi.io/v1beta2               true         KafkaBridge
kafkaconnectors                    kctr                   kafka.strimzi.io/v1beta2               true         KafkaConnector
kafkaconnects                      kc                     kafka.strimzi.io/v1beta2               true         KafkaConnect
kafkamirrormaker2s                 kmm2                   kafka.strimzi.io/v1beta2               true         KafkaMirrorMaker2
kafkamirrormakers                  kmm                    kafka.strimzi.io/v1beta2               true         KafkaMirrorMaker
kafkarebalances                    kr                     kafka.strimzi.io/v1beta2               true         KafkaRebalance
kafkas                             k                      kafka.strimzi.io/v1beta2               true         Kafka
kafkatopics                        kt                     kafka.strimzi.io/v1beta2               true         KafkaTopic
kafkausers                         ku                     kafka.strimzi.io/v1beta2               true         KafkaUser

使用安装文件部署 Strimzi

ClusterRole

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:creationTimestamp: "2024-07-11T06:53:34Z"labels:app: strimzichart: kafka-operator-0.31.1component: broker-roleheritage: Helmrelease: qfusion-kafka-operatorname: strimzi-kafka-brokerresourceVersion: "2187"uid: e4da519d-418d-4e84-8b63-cc73773fac87
rules:
- apiGroups:- ""resources:- nodesverbs:- get

ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:creationTimestamp: "2024-07-12T07:32:13Z"labels:AppName: kafka-6d02b3a4TenantId: 847798ee3db44716b6357b04e5a55c16app.kubernetes.io/instance: kafka-6d02b3a4app.kubernetes.io/managed-by: strimzi-cluster-operatorapp.kubernetes.io/name: kafkaapp.kubernetes.io/part-of: strimzi-kafka-6d02b3a4strimzi.io/cluster: kafka-6d02b3a4strimzi.io/kind: Kafkastrimzi.io/name: strimziname: strimzi-qfusion-admin-kafka-6d02b3a4-kafka-initresourceVersion: "2595833"uid: c4e26e5a-8212-4d5e-8e44-9c72795ee1d6
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: strimzi-kafka-broker
subjects:
- kind: ServiceAccountname: kafka-6d02b3a4-kafkanamespace: qfusion-admin

advertised.listeners

https://www.confluent.io/blog/kafka-listeners-explained/

advertised.listeners 配置项在 Kafka 配置中非常重要,它指定了 Kafka 代理(Broker)应该向外部(包括客户端和其它 Kafka 代理)通告的监听地址和端口。这个配置确保了即使在复杂的网络环境中,比如使用了服务发现或者网络隔离的情况下,Kafka 集群的各个组件也能正确地找到并相互通信。

下面是对您提供的 advertised.listeners 配置的详细解释:

  • CONTROLPLANE-9090://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9090

    • 监听器名称CONTROLPLANE-9090
    • 协议:SSL(安全套接字层,用于加密通信)
    • Kafka 代理地址kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc —— 这通常是一个 Kubernetes 服务的 DNS 名称,它解析为 Kafka 集群中的一个代理。
    • 端口9090 —— Kafka 代理监听的端口。
  • REPLICATION-9091://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9091

    • 监听器名称REPLICATION-9091
    • 协议:SSL
    • 端口9091 —— 用于 Kafka 代理之间的数据复制。
  • PLAIN-9092://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9092

    • 监听器名称PLAIN-9092
    • 协议:PLAINTEXT(明文)
    • 端口9092 —— 对外提供非加密的访问。
  • TLS-9093://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9093

    • 监听器名称TLS-9093
    • 协议:SSL
    • 端口9093 —— 另一个 SSL 端口,可能用于不同的用途或客户端。
  • ZONE1-9094://10.10.x.x:23561

    • 监听器名称ZONE1-9094
    • 协议:SASL_PLAINTEXT(简单认证和明文传输)
    • IP 地址10.10.180.x.x —— 一个固定的 IP 地址,可能用于特定区域或场景的访问。
    • 端口23561 —— 特定于这个监听器的端口号。

在 Kubernetes 环境中,.kafka-823135ee-kafka-brokers.qfusion-admin.svc 这部分是一个服务名称,它可能被 Kubernetes DNS 解析为集群内所有 Kafka 代理的内部 IP 地址。这样,即使代理的 IP 地址发生了变化,服务的 DNS 名称仍然保持稳定,可以用于通信。

advertised.listeners 配置确保了 Kafka 集群可以在复杂的网络环境中正确地对外通告其服务地址和端口,使得客户端和其它 Kafka 代理能够找到并与之通信。

https://blog.csdn.net/AE_BD/article/details/136626386

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

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

相关文章

mac电脑pdf合并,macpdf合并成一个pdf

在数字化办公和学习的今天,pdf文件因其跨平台兼容性强、格式稳定而成为了最受欢迎的文档格式之一。但随之而来的问题也接踵而至,如何将多个pdf文件合并为一个?这不仅关系到文档的整洁性,更是时间管理的重要环节。今天,…

股指期货如何交易?有哪些交易策略和操作技巧?

股指期货交易提供了多种策略和技巧,以适应不同的市场情况和投资者需求。以下是对股指期货交易的一些基本策略和操作技巧的介绍。 1.卖出股指期货套期保值 对于那些已经持有或预计将持有股票的投资者,如果对未来市场走势不确定或预期市场将下跌&#xf…

PostgreSQL安装/卸载(CentOS、Windows)

说明:PostgreSQL与MySQL一样,是一款开源免费的数据库技术,官方口号:The World’s Most Advanced Open Source Relational Database.(世界上最先进的开源关系数据库),本文介绍如何在Windows、Cen…

windows下pip修改镜像地址

不修改镜像地址安装时候就会很慢 永久修改 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 清华大学源:https://pypi.tuna.tsinghua.edu.cn/simple/ 豆瓣源 :http://pypi.douban.com/simple/ 腾讯源:http://mir…

工程实践1 项目:小超市商品管理系统

#include<stdio.h> #include<stdlib.h>typedef struct item {int num;//编号char name[10];//名字int cost;//进价&#xff08;成本&#xff09;int price;//售价int initial_quantity;//进货量&#xff08;初始量&#xff09;int sale_quantity;//销售量int waste…

【C++ Primer Plus】学习笔记 2

文章目录 前言一、简单变量1. 变量名2. 整型2.1 整型类型2.2 无符号类型2.3 char 类型2.4 signed char 和unsigned char2.5 bool类型 3.浮点数4.类型转换 总结 前言 该系列文章请点击专栏查看 一、简单变量 1. 变量名 C提倡使用有一定含义的变量名&#xff0c;必须遵循几种简…

PyCharm: Python 开发者的首选 IDE

PyCharm 是由 JetBrains 公司开发的一款专为 Python 语言设计的集成开发环境&#xff08;IDE&#xff09;。它以其强大的功能、高效的代码编辑、智能的代码分析和便捷的项目导航而受到全球开发者的青睐。本文将介绍 PyCharm 的核心特性、使用技巧以及如何充分利用 PyCharm 提升…

moment()获取时间

moment 是一个 JavaScript 日期处理类库。 使用&#xff1a; //安装 moment npm install moment -- save 引用 //在main.js中全局引入 import moment from "moment" 设定moment区域为中国 //import 方式 import moment/locale/zh-cn moment.locale(zh-cn); …

ai绘画软件哪个好用?这5个工具值得尝试

这段时间云南上亿只蝴蝶翩翩起舞&#xff0c;仿佛大自然最绚烂的画布&#xff0c;不禁让人思考&#xff0c;若能将这份灵动与色彩完美捕捉于画布之上&#xff0c;该是多么奇妙的事。 幸运的是&#xff0c;现在无需远行&#xff0c;无需等待&#xff0c;只需一些创意&#xff0…

python 基础语法整理

注释声明命名规范数据类型简单数据类型复合数据类型 打印输出类型转换随机数获取布尔类型流程控制语句循环语句字符串操作拼接替换分割与连接大小写转换空白字符删除 切片列表操作访问/赋值判断是否存在元素添加/删除复制排序 元组集合字典空集合与空字典 函数声明多返回值函数…

【笔记-MyBatis】StatementHandler

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-15 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 StatementHandler封装了对JDBC各类Statement的操作&#xff0c;如设置fetchSize属性、设置查询超时时间、与数据库进行交互等&…

【TFTP工具(Trivial File Transfer Protocol)】

TFTP工具(Trivial File Transfer Protocol)使用&#xff1a; 一、概述 分为服务端和客户端&#xff0c;想要通信&#xff0c;一个配成服务端另一个配成客户端。TFTP 用于 UDP 端口号 69 其文件传输活动 要想使用TFTP需要的步骤&#xff1a; ① 本地安装客户端工具 ② 服务器…

【JS红宝书学习笔记】第25章 客户端存储

第25章 客户端存储 Cookie HTTP是无状态的&#xff0c;也就是说&#xff0c;你这次访问服务器&#xff0c;关闭后再次访问服务器&#xff0c;服务器是意识不到又是你来访问的。 登录时&#xff0c;浏览器需要帮我们在每一次请求里加入用户名和密码&#xff0c;这样才能做到保…

Supervised Contrastive Learning

paperhttps://arxiv.org/abs/2004.11362githubhttps://github.com/HobbitLong/SupContrast个人博客位置http://myhz0606.com/article/SupCon 1 Motivation 经典的自监督对比学习方法以instance discrimination作为pretext task。在这种方法中&#xff0c;会对batch的图片进行…

【书生大模型实战】L0-Git 基础知识

一、关卡任务 任务1: 破冰活动&#xff1a;自我介绍任务2: 实践项目&#xff1a;构建个人项目 二、实验过程 2.1 破冰行动 每位参与者提交一份自我介绍。 提交地址&#xff1a;GitHub - InternLM/Tutorial: LLM Tutorial 的 camp3 分支&#xff5e; 要求&#xff1a; 命名…

鸿蒙开发工程师面试-架构篇

1. 假如让你负责鸿蒙App架构设计&#xff0c;你会关注哪些方面&#xff1f; 分层架构设计&#xff1a; 将应用划分为产品定制层、基础特性层和公共能力层&#xff0c;以降低层间依赖性&#xff0c;提升代码可维护性。通过分层架构设计&#xff0c;进一步明确每层的职责和层间交…

R-CNN、Fast R-CNN和Faster R-CNN:目标检测的进化之路

在计算机视觉的世界里,目标检测是一个重要的任务,它的目标是找到图像中的特定物体,并标注出它们的位置。这项技术广泛应用于自动驾驶、安防监控等领域。为了让计算机能够准确高效地完成这一任务,科学家们提出了许多优秀的算法,其中最具代表性的就是R-CNN、Fast R-CNN和Fas…

Linux驱动开发-04LED灯驱动实验(直接操作寄存器)

一、Linux 下LED 灯驱动原理 Linux 下的任何外设驱动&#xff0c;最终都是要配置相应的硬件寄存器。驱动访问底层的硬件除了使用内存映射将物理地址空间转化为虚拟地址空间&#xff0c;去进行读写修改&#xff0c;还可以通过各种子系统函数去进行操作 1.1 地址映射 MMU 全称…

视频语音转文字工具有哪些?提取视频文字就用这5个

作为一名大学毕业生&#xff0c;你是否也常靠几句简单的英语走遍天下&#xff0c;却在面对外语视频时感到手足无措&#xff1f; 别急&#xff0c;虽然在这个语言大家庭中&#xff0c;我们不可避免地要接触外语内容&#xff0c;但幸运的是&#xff0c;一些智能软件的出现&#…

leetcode日记(41)最大子数组和

以前大一的时候做过这题jpg&#xff0c;应该是个很经典的动态规划。 我首先的想法创建二维数组&#xff0c;横列代表起始位置纵列代表结束位置&#xff0c;依次补全数组&#xff0c;后来发现时间复杂度太高了&#xff1a; class Solution { public:int maxSubArray(vector<…