使用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());
    			});
    		}
    	}
      }
    }
    

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

    2022年6月13日
    78
  • docker(1)下载安装for mac

    docker(1)下载安装for mac前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月29日
    7
  • centos7.6安装docker_docker自动部署多环境

    centos7.6安装docker_docker自动部署多环境前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月30日
    7
  • Jar包发布Docker一键部署脚本

    Jar包发布Docker一键部署脚本

    2021年6月2日
    138
  • 用docker部署jar包_docker run 参数

    用docker部署jar包_docker run 参数小小总结一、思路1、将docker容器中的指定文件夹挂载到宿主机上,更新jar包只需上传到宿主机指定路径,方便更新2、利用bash文件运行jar包,并构建该bash的镜像,代替构建直接运行jar包的镜像,利于镜像与jar包解耦。例如,app-1.0.0.jar升级到app-2.0.0.jar,只须更改bash文件的内容,而无须构建新的镜像。二、准备工作1、创建存放docker配置文件、jar包的文件夹在宿主机上,创建文件夹:/home/admin/app,用于存放bash文件和jar包。然

    2022年9月27日
    4
  • Docker 拉取 oracle 11g镜像配置

    Docker 拉取 oracle 11g镜像配置话不多说开始记录docker拉取阿里的oracle11g镜像并进行配置,用pl/sql可以登录为最终结果navicat连接是在最后一步参考:https://blog.csdn.net/zwx521515/article/details/77982884但是根据这个进行配置会有一些问题,所以写这篇记录一下,希望可以帮助其他人开始:①、开始拉取镜像-执行命令:…

    2022年5月7日
    114

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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