使用Docker(k8s)安装Kafka并使用宿主机连接

使用Docker(k8s)安装Kafka并使用宿主机连接使用Docker(k8s)安装Kafka并使用宿主机连接安装Docker及docker-compose具体安装方法可以去官网看教程检查docker-compose是否安装成功创建docker-compose.yml文件version:’2’services:zookeeper:image:”zookeeper”hostname:”zookeeper.local”container_name:”zookeeper”#设置网络别名可随

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用Docker(k8s)安装Kafka并使用宿主机连接

  1. 安装Docker及docker-compose
    具体安装方法可以去官网看教程
    检查docker-compose是否安装成功
    在这里插入图片描述
  2. 创建 docker-compose.yml 文件
version: '2'
services:
  zookeeper:
    image: "zookeeper"
    hostname: "zookeeper.local"
    container_name: "zookeeper"
    #设置网络别名 可随意取
    networks:
      local:
        aliases:
          - "zookeeper.local"
  kafka:
    image: "wurstmeister/kafka"
    hostname: "kafka.local"
    container_name: "kafka"
    ports:
      - "9092:9092"
    networks:
      local:
        aliases:
          - "kafka.local"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka.local
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
#设置网络,名为local模式
networks:
  local:
    driver: bridge
  1. 进入Kafka容器
docker exec -it kafka /bin/bash
  1. 创建Topic
/opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --create --zookeeper zookeeper:2181 -replication-factor 1 --partitions 1 --topic test_topic
  1. 测试命令行生产消费
  • 生产者
/opt/kafka_2.13-2.7.0/bin/kafka-console-producer.sh --broker-list kafka.local:9092 --topic test_topic

在这里插入图片描述

  • 消费者
/opt/kafka_2.13-2.7.0/bin/kafka-console-consumer.sh --bootstrap-server kafka.local:9092 --topic test_top
ic --from-beginning

在这里插入图片描述

  1. 从宿主机使用代码连接Kafka
    6.1 进入Zookeeper容器查看brokers注册信息
    # 进入容器
    docker exec -it zookeeper /bin/bash
    
    # 进入zookeeper命令行
    bin/zkCli.sh
    

    6.2 查看brokers注册信息

    get /brokers/ids/1001
    

    在这里插入图片描述
    6.3 配置宿主机hosts

    # 添加
    127.0.0.1	kafka.local
    

    6.4 使用Java代码连接Kafka

    public class KafkaConsumerDemo { 
         
    public static void main(String[] args) { 
         
    	//1.配置消费者连接属性
    	Properties props = new Properties();
    	props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka.local:9092");
    	props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
    	props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, "org.apache.kafka.common.serialization.StringDeserializer");
    	props.put(ConsumerConfig.GROUP_ID_CONFIG, "test_demo");
    
    
    	//2.创建Kafka消费者
    	KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(props);
    
    	//3.订阅topics
    	consumer.subscribe(Arrays.asList("test_topic"));
    // consumer.assign(Arrays.asList(new TopicPartition("test_topic", 0)));
    // consumer.seekToBeginning(Arrays.asList(new TopicPartition("test_topic", 0)));//不改变当前offset
    
    	//4.死循环读取消息
    	for (; ; ) { 
         
    		ConsumerRecords<String, String> records = consumer.poll(Duration.ofSeconds(1));
    
    		if (records != null && !records.isEmpty()) { 
         
    			records.forEach(r -> { 
         
    				System.out.println("key:" + r.key() + "----value:" + r.value());
    			});
    		}
    	}
      }
    }
    

测试成功
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171579.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • docker的常用命令汇总_Docker命令

    docker的常用命令汇总_Docker命令docker常用命令合集文章目录docker常用命令合集一、docker概论二、Docker的应用场景2.1Docker的优点三、Docker架构四、docker安装4.1安装依赖包4.2设置阿里云镜像源4.3安装docker-ce4.4镜像加速4.5网络优化五、docker镜像使用六、docker容器的使用七、创建镜像八、docker的数据管理九、本地私有仓库建立十、容器互联十一、总结一、docker概论Docker是一个开源的应用容器引擎,基于Go语言并遵从Apa

  • docker离线安装「建议收藏」

    docker离线安装「建议收藏」1.下载Docker二进制文件(离线安装包)下载地址:https://download.docker.com/linux/static/stable/x86_64/本文使用/x86_64/docker-17.12.1-ce.tgz,注意对应操作系统类型。2、通过FTP工具将docker-17.12.1-ce.tgz上传到服务器上3、解压安装包tarzxfdocker-17.12.1-ce.tgz4、将docker相关命令拷贝到/usr/bin,方便直接运行命令sudo

  • 远程访问docker容器_docker运行python程序

    远程访问docker容器_docker运行python程序                      Pycharm远程调试服务器中的代码(docker容器内部) 一、首先假设你已启动了一个docker容器,并在启动时将容器的22端口映射到宿主机的10022端口启动示例:dockerrun-d–namedjango_api-p8000:80-p10022:22-p5000:5000–linkmysql_ho…

  • docker如何卸载_docker删除container

    docker如何卸载_docker删除container1首先搜索已经安装的docker安装包yumlistinstalled|grepdocker或者使用该命令rpm-qa|grepdocker分别删除安装包yum–yremovedocker.x86_64yum–yremovedocker-client.x86_64yum–yremovedocker-common.x86_643删除docker镜像rm-rf/var/lib/docker4再次checkdocker是否已经卸载成功

  • docker命令详解「建议收藏」

    docker命令详解「建议收藏」镜像下载搜索镜像dockersearch+镜像名字#dockersearchcentos从DockerHub中搜索符合条件的镜像下载镜像#dockerpull+镜像名字#dockerpullcentos查看镜像#dockerimages开启网络转发功能(默认为开启状态)若无开启,可以使用以下命令开启#vim/etc/sysctl…

  • linux下修改docker容器RabbitMQ端口映射(修改RabbitMQ默认端口)

    linux下修改docker容器RabbitMQ端口映射(修改RabbitMQ默认端口)1.xshell执行以下命令获取docker容器IDdockerps-a2.修改/var/lib/docker/containers/{容器ID+一些字符串}/hostconfig.json中”PortBindings”:{“容器端口/tcp”:[{“HostIp”:””,”HostPort”:”改成你要改的端口”}]3.修改并上传配置文件后执行以下代码sy…

    2022年10月27日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号