首页 > 其他分享 >✍75 Kafka安装及使用

✍75 Kafka安装及使用

时间:2022-11-10 15:35:45浏览次数:84  
标签:-- local zookeeper 9092 kafka 75 docker Kafka 安装

一. Docker 安装

https://blog.csdn.net/ch_improve/article/details/114268915

1.下载

# 下载zookeeper镜像
docker pull wurstmeister/zookeeper

# 下载kafka镜像
docker pull wurstmeister/kafka

2.启动

  • 方式一 : docker 启动
# 启动zookeeper
docker run -d --name zookeeper --publish 2181:2181 --volume /etc/localtime:/etc/localtime wurstmeister/zookeeper

# 启动kafka
docker run -d --name kafka3 --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=127.0.0.1 --env KAFKA_ADVERTISED_PORT=9092 wurstmeister/kafka
  • 方式二 : docker-compose 启动
# docker-compose.yml
version: '2'
services:
  zookeeper:
    image: "wurstmeister/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: 10.64.66.118  # 对外开放的ip
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

networks:
  local:
    driver: bridge
# 简便写法
version: '2'
services:
    zookeeper:
        image: wurstmeister/zookeeper
        volumes:
        - ./data:/data
        ports:
            - "2181:2181"

    kafka:
        image: wurstmeister/kafka
        ports:
            - "9092:9092"
        environment:
          KAFKA_ADVERTISED_HOST_NAME: 10.64.66.118
          KAFKA_MESSAGE_MAX_BYTES: 2000000
          KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
networks:
  local:
    driver: bridge

启动命令 : docker-compose up -d

二.终端测试

1.打开两个命令框,都进入kafka容器内

docker exec -it kafka bash

2.一个命令框测试创建 topic 并订阅

# 连接 zookeeper, 创建一个 topic
/opt/kafka/bin/kafka-topics.sh --create --zookeeper zookeeper:2181 -replication-factor 1 --partitions 1 --topic test01
# 查看 topic
/opt/kafka/bin/kafka-topics.sh --zookeeper zookeeper:2181 --list
# 消费者订阅该 topic
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka.local:9092 --topic test01 --from-beginning

第一条命令报错 :Error while fetching metadata with correl

image-20220412103426861

原因 : 无法连接 zookeeper, 重启该容器即可

3.另一个终端测试生产数据

# 生产者
/opt/kafka/bin/kafka-console-producer.sh --broker-list kafka.local:9092 --topic test01

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic "RCU_TDM_TOPIC"

测试 :

  • 在生产者终端不断发消息, 在消费者终端可以收到消息

三.Python 操作 Kafka 测试

1.测试

  • server.py
from kafka import KafkaProducer
from kafka.errors import KafkaError
import time

class KafkaPythonDemo(object):
    def __init__(self):
        self.producer = KafkaProducer(bootstrap_servers=["10.64.66.118:9092"])
        self.topic = 'test1'

    def producerTest(self):
        print('------ producer begins ------')
        n = 1
        try:
            while (n <= 100):
                self.producer.send(self.topic, str(n).encode())
                print(f'send {str(n)}')
                n += 1
                time.sleep(0.5)
        except KafkaError as e:
            print(e)
        finally:
            self.producer.close()
            print('======= 生产完毕 =========')


if __name__ == "__main__":
    kafkaPythonDemo = KafkaPythonDemo()
    kafkaPythonDemo.producerTest()
  • client.py
from kafka import KafkaConsumer

consumer = KafkaConsumer('test1', bootstrap_servers='10.64.66.118:9092')
for msg in consumer:
    print(msg.value.decode())

2.对外开放连接配置问题

  • kafka 在运行在虚拟机容器内

  • 映射 9092 端口

在虚拟机内可以连接 kafka, 在 windows 宿主机上无法连接

image-20220412142105918

  • 解决 : 修改 server.properties 配置文件
advertised.listeners=PLAINTEXT://10.64.66.118:9092  # 对外地址

标签:--,local,zookeeper,9092,kafka,75,docker,Kafka,安装
From: https://www.cnblogs.com/songhaixing/p/16877188.html

相关文章

  • Tia Portal 安装,1200 仿真,上位机读写数据
    1.安装TIAPortal16和PLCSIM16链接:https://pan.baidu.com/s/1hcFn18KvlIQqMt9tChfo2A提取码:5ahd 安装过程都是下一步即可,遇到不停提示重启计算机,在计算机\HKEY_LOC......
  • linux安装java
    1.在/usr下新建java2.上传安装包到java,并解压tar-xvfjdk....tar.gz3.ln-s/usr/java/jdk1.8.0_351/usr/jdk 设置链接,节约目录长度4.vim/etc/profile 5. 配置......
  • docker安装laravel
    官网文档:https://learnku.com/docs/laravel/9.x/installation/12200#getting-started-on-macoscurl-s"https://laravel.build/example-app"|bash此URL中的「exam......
  • conda 虚拟环境安装pytorch & d2l包
    conda虚拟环境安装pytorch1、首先,conda终端添加清华镜像源,可以加快安装速度。2、确认电脑匹配的CUDA型号,(例如,9.2)3、新建一个虚拟环境,在终端运行condacreate-nXXXp......
  • docker安装最新版nacos
    docker安装最新版nacos第一步:拉取镜像dockerpullnacos/nacos-server第二步:mysql创建数据库CREATEDATABASEnacos;USEnacos;CREATETABLE`config_info`(`id......
  • 使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(PV&PVC)
    使用Kubeadm部署Kubernetes(K8S)安装--持久化存储(NFS网络存储)NFS存在一个弊端,需要知道NFS服务器的地址,配在yaml中PV:持久化存储,对存储资源进行抽象,对外提供可......
  • Linux安装JDK并配置环境变量
    1.前往JDK官网,地址:https://www.oracle.com/java/technologies/downloads/下载需要的版本(优先java8)   2. 使用cd进入指定目录下,使用mkdir新建一个文件夹,继续使......
  • 好用的在线客服系统Go语言源码-GOFLY ( 开源代码+安装教程)
    功能列表1.即时通讯2.访客链接3.公告信息4.欢迎信息5.离线信息5.单点登录6.浏览器通知7.邮箱通知搭建运行环境Linux环境逐句执行以下命令wgethttps:......
  • golang - win10 下载、安装、运行首个go文件
    1.下载运行环境官网地址https://golang.google.cn/dl/ 可以直接下载msi文件夹,双击后会自动安装环境,但作为一个程序员,但是,这种傻瓜式的安装容易带来风险,习惯性的喜......
  • 使用 Kubeadm 部署 Kubernetes(K8S) 安装 -- 持久化存储(NFS网络存储)
    使用Kubeadm部署Kubernetes(K8S)安装Volume是Pod中能够被多个容器访问的共享目录。Kubernetes的Volume定义在Pod上,它被一个Pod中的多个容器挂载到具体的......