kafka伪集群部署,使用KRAFT模式

1:拉去管理kafka界面UI镜像

docker pull provectuslabs/kafka-ui

2:拉去管理kafka镜像

docker pull bitnami/kafka

3:docker-compose.yml

version: '3.8'
services:kafka-1:container_name: kafka1image: bitnami/kafka	ports:- "19092:19092"- "19093:19093"volumes:
#      - /etc/localtime:/etc/localtime:ro- G:\temptemptemp\kafkaCluster\kafka\datas\kafka1:/bitnami/kafka:rwenvironment:- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.50:19092- ALLOW_PLAINTEXT_LISTENER=yes- KAFKA_CREATE_TOPICS=test-topic:1:1- KAFKA_BROKER_ID=1- KAFKA_KRAFT_CLUSTER_ID=1P5TYc6qRpmNeZ2ZIps4TQ- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_LISTENERS=PLAINTEXT://:19092,CONTROLLER://:19093- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@192.168.11.50:19093,2@192.168.11.50:29093,3@192.168.11.50:39092- KAFKA_CFG_NODE_ID=1- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_ENABLE_KRAFT=yeskafka-2:container_name: kafka2image: bitnami/kafkaports:- "29092:29092"- "29093:29093"volumes:
#      - /etc/localtime:/etc/localtime:ro- G:\temptemptemp\kafkaCluster\kafka\datas\kafka2:/bitnami/kafka:rwenvironment:- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.50:29092- ALLOW_PLAINTEXT_LISTENER=yes- KAFKA_CREATE_TOPICS=test-topic:1:1- KAFKA_BROKER_ID=2- KAFKA_KRAFT_CLUSTER_ID=1P5TYc6qRpmNeZ2ZIps4TQ- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_LISTENERS=PLAINTEXT://:29092,CONTROLLER://:29093- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@192.168.11.50:19093,2@192.168.11.50:29093,3@192.168.11.50:39093- KAFKA_CFG_NODE_ID=2- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_ENABLE_KRAFT=yesdepends_on:- kafka-1kafka-3:container_name: kafka3image: bitnami/kafkaports:- "39092:39092"- "39093:39093"volumes:
#      - /etc/localtime:/etc/localtime:ro- G:\temptemptemp\kafkaCluster\kafka\datas\kafka3:/bitnami/kafka:rwenvironment:- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.50:39092- ALLOW_PLAINTEXT_LISTENER=yes- KAFKA_CREATE_TOPICS=test-topic:1:1- KAFKA_BROKER_ID=3- KAFKA_KRAFT_CLUSTER_ID=1P5TYc6qRpmNeZ2ZIps4TQ- KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_LISTENERS=PLAINTEXT://:39092,CONTROLLER://:39093- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@192.168.11.50:19093,2@192.168.11.50:29093,3@192.168.11.50:39092- KAFKA_CFG_NODE_ID=3- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_ENABLE_KRAFT=yesdepends_on:- kafka-1- kafka-2kafka-ui:container_name: kafka-uiimage: provectuslabs/kafka-uiports:- "8080:8080"environment:- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.11.50:19092,192.168.11.50:29092,192.168.11.50:39092- KAFKA_KRAFT_CLUSTER_ID=1P5TYc6qRpmNeZ2ZIps4TQ

4:springboot项目发布和消费kafka

4-1:application.yml

server:port: 9088
spring:kafka:consumer:bootstrap-servers: localhost:19092,localhost:29093,localhost:39092group-id: test-groupauto-offset-reset: earliestproducer:bootstrap-servers: localhost:19092,localhost:29092,localhost:39092key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializer

4-2:消费者

package com.example.kafkademo.config;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;/*** @Author xu* @create 2023/9/27 19*/
@Service
public class KafkaConsumerService {private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConsumerService.class);@KafkaListener(topics = "topic")public void receiveMessage(String message) {LOGGER.info("received message='{}'", message);}
}

4-3:生产者

package com.example.kafkademo.config;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;/*** @Author xu* @create 2023/9/27 19*/
@Service
public class KafkaProducerService {private static final Logger LOGGER = LoggerFactory.getLogger(KafkaProducerService.class);@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;public void sendMessage(String topic, String message) {LOGGER.info("sending message='{}' to topic='{}'", message, topic);kafkaTemplate.send(topic, message);}
}

4-4:controller

package com.example.kafkademo.controller;import com.example.kafkademo.config.KafkaProducerService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** @Author xu* @create 2023/9/27 19*/
@RestController
public class KafkaController {@ResourceKafkaProducerService kafkaProducerService;@PostMapping("/publish")public String publish(String topic,String content){kafkaProducerService.sendMessage("topic",content);System.out.println("content");return content;}
}

4-5:pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.16</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>kafkaDemo</artifactId><version>0.0.1-SNAPSHOT</version><name>kafkaDemo</name><description>kafkaDemo</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

5:命令行方式启动kafka

docker run -d --name kafka1 -p 19092:19092 -p 19093:19093 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.50:19092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_BROKER_ID=1 -e KAFKA_KRAFT_CLUSTER_ID=1P5TYc6qRpmNeZ2ZIps4TQ -e KAFKA_CFG_PROCESS_ROLES=broker,controller -e KAFKA_CFG_LISTENERS=PLAINTEXT://:19092,CONTROLLER://:19093 -e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER  -e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@192.168.11.50:19093 -e KAFKA_CFG_NODE_ID=1 -e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT -e KAFKA_ENABLE_KRAFT=yes -e KAFKA_CFG_KRAFT_MODE=kraft bitnami/kafka

6:命令行方式启动kafka-ui

docker run -d --name kafka-ui -p 8080:8080 -e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=192.168.11.50:19092 provectuslabs/kafka-ui

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

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

相关文章

Ubuntu配置深度学习环境(TensorFlow和PyTorch)

文章目录 一、CUDA安装1.1 安装显卡驱动1.2 CUDA安装1.3 安装cuDNN 二、Anaconda安装三、安装TensorFlow和pyTorch3.1 安装pyTorch3.2 安装TensorFlow2 四、安装pyCharm4.1 pyCharm的安装4.2 关联anaconda的Python解释器 五、VScode配置anaconda的Python虚拟环境 前言&#xff…

Java下正面解除警告Unchecked cast: ‘java.lang.Object‘ to ‘java.util.ArrayList‘

就是我在反序列化时&#xff0c;遇到这样一个警告&#xff1a; Unchecked cast: java.lang.Object to java.util.ArrayList<com.work1.Student>然后我去网上查&#xff0c;有些人说用SuppressWarnings(“unchecked”)去忽略警告&#xff0c;但是我觉得作为一名合格的程序…

AWS-Lambda之导入自定义包-pip包

参考文档&#xff1a; https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …

深入探讨 Presto 中的缓存

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 Presto是一种流行的开源分布式SQL引擎&#xff0c;使组织能够在多个数据源上大规模运行交互式分析查询。缓存是一种典型的提高 Presto 查询性能的优化技术。它为 Prest…

循环语句

章节目录&#xff1a; 一、while 循环1.1 句式与基本使用1.2 while...else1.3 单行语句 二、for 循环2.1 句式与基本使用2.2 for...else2.3 range() 函数 三、退出循环3.1 break3.2 continue 四、pass 语句五、结束语 一、while 循环 1.1 句式与基本使用 句式&#xff1a; w…

postgresql-管理表空间

postgresql-管理表空间 基本概念创建表空间用户授权移动表空间 修改表空间移动表空间位置 删除表空间 基本概念 在 PostgreSQL 中&#xff0c;表空间&#xff08;tablespace&#xff09;表示数据文件的存放目录&#xff0c;这些数据文件代表了数 据库的对象&#xff0c;例如表…

buuctf-[RoarCTF 2019]Easy Java

第一次遇到java类的题目 打开环境&#xff0c;很像sql 点击help 以为是文件包含&#xff0c;&#xff0c;但是不对 这里需要了解JAVA WEB目录结构 WEB-INF&#xff1a;Java的web应用安全目录&#xff1b; 此外如果想在页面访问WEB-INF应用里面的文件&#xff0c;必须要通过w…

音乐创作软件:ToneLIB Jam v4.7.8 Crack

从强大的选项卡编辑器到 3D 模式 Tonelib Jam 是一款用于播放和创作音乐的综合软件应用程序。TL Jam专为初学者和经验丰富的吉他手而设计&#xff0c;可以提供一个完美的平台来掌握乐器&#xff0c;让您轻松学习自己喜欢的歌曲或设置高效的日常吉他练习程序。TL Jam 具有功能强…

华为云云耀云服务器L实例评测|使用华为云耀云服务器L实例的CentOS部署Docker并运行Tomcat应用

目录 前言 步骤1&#xff1a;登录到华为云耀云服务器L实例 步骤2&#xff1a;安装Docker 并验证Docker安装 步骤3&#xff1a;拉取Tomcat镜像并运行Tomcat容器 步骤4&#xff1a;放行8080端口 步骤5&#xff1a;访问tomcat 步骤6&#xff1a;管理Tomcat容器 小结 前言 …

27、Flink 的SQL之SELECT (Pattern Recognition 模式检测)介绍及详细示例(7)

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【论文阅读】大语言模型中的文化道德规范知识

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;论文阅读 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

GEO生信数据挖掘(四)数据清洗(离群值处理、低表达基因、归一化、log2处理)

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 离群值处理 删除 低表达基因 函数归一化&#xff0c;矫正差异 数据标准化—log2处理 完整代码 上节围绕着探针ID和基因名称做了一些清洗工作&#xff0c;还做了重复值检查…

酷开科技OTT大屏营销,做好价值塑造

洞察2023&#xff0c;随着技术与数据入局OTT领域&#xff0c;程序化投放、数据追踪、人群定位等等能力正逐步深入&#xff0c;围绕OTT大屏营销&#xff0c;新营销的价值也正在被重构。随着国内5G、人工智能、云计算等技术不断普及&#xff0c;大屏营销服务成为OTT行业发展的主流…

使用 Python 给 PDF 添加目录书签

0、库的选择——pypdf 原因&#xff1a;Python Version Support Python 3.11 3.10 3.9 3.8 3.7 3.6 2.7 pypdf>3.0 YES YES YES YES YES YES PyPDF2>2.0 YES YES YES YES YES YES PyPDF2 1.20.0 - 1.28.4 YES YES YES YES YES YES P…

1、【开始】【简介】Qlib:量化平台

【简介】1、Qlib:量化平台 简介框架简介 Qlib是一个面向AI的量化投资平台,旨在实现AI技术在量化投资中的潜力,赋能研究,并创造价值。 通过Qlib,用户可以轻松利用他们的想法来创建更好的量化投资策略。 框架 在模块层,Qlib 是由上述组件组成的平台。这些组件被设计为低耦…

Flutter笔记:关于应用程序中提交图片作为头像

Flutter笔记 关于应用程序中提交图片作为头像 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/133418554…

多目标平衡黏菌算法(MOEOSMA)求解八个现实世界受约束的工程问题

目录 1 受约束的工程问题 1.1 减速器设计问题(Speed reducer design problem) 1.2 弹簧设计问题(Spring design problem) 1.3 静压推力轴承设计问题(Hydrostatic thrust bearing design problem) 1.4 振动平台设计问题(Vibrating platform design problem) 1.5 汽车侧面碰…

HTML——列表,表格,表单内容的讲解

文章目录 一、列表1.1无序&#xff08;unorder&#xff09;列表1.2 有序&#xff08;order&#xff09;列表1.3 定义列表 二、表格**2.1 基本的表格标签2.2 演示 三、表单3.1 form元素3.2 input元素3.2.1 单选按钮 3.3 selcet元素 基础部分点击&#xff1a; web基础 一、列表 …

做一个优秀的博士生,时间的付出是必要条件

&#xff0a;图片来自管理学季刊 时间的付出 所有成功的科学家一定具有的共同点&#xff0c;就是他们必须付出大量的时间和心血。这是一条真理。实际上&#xff0c;无论社会上哪一种职业&#xff0c;要想成为本行业中的佼佼者&#xff0c;都必须付出比常人多的时间。有时&…

数据结构——二叉树的基本概念及顺序存储(堆)

目录 一.前言 二.树概念及结构 2.1 树的概念 2.2 树的相关概念 2.3 树的表现 2.4 树在实际中的应用&#xff08;表示文件系统的目录树结构&#xff09; 三.二叉树的概念及结构 3.1 概念 3.2 特殊的二叉树 3.3 二叉树的性质 3.4 二叉树的存储结构 3.4.1 顺序存储 3…