• kafka安装


    win10

    来源:https://blog.csdn.net/tianmanchn/article/details/78943147

    • 进入:http://kafka.apache.org/downloads.html
    • 点击Scala 2.12 - kafka_2.12-2.1.0.tgz
    • 点击http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
    • 下载后解压缩 😄:\Tools\kafka_2.11-1.0.0\
    • 建立一个空文件夹 logs. eg: D:\Tools\kafka_2.11-1.0.0\logs
    • 进入config目录,编辑修改 server.properties文件
      • log.dirs= D:\Tools\kafka_2.11-1.0.0\logs
      • zookeeper.connect=localhost:2181

    启动kafka

    进入D:\WorkSoftware\kafka_2.11-1.0.0 ,打开cmd,运行:

    .\bin\windows\kafka-server-start.bat .\config\server.properties
    
    • 1

    测试使用

    • 创建一个kafka的topic
    //创建一个test1队列:
    .\bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test1 --partitions 3 --replication-factor 1
    //检查创建结果:
    .\bin\kafka-topics.sh --zookeeper localhost:2181 --describe --topic test1
    
    • 1
    • 2
    • 3
    • 4
    • 启动接收方
    .\bin/kafka-console-consumer.sh --zookeeper localhost:2181--topic test1
    //显示数据
    
    • 1
    • 2
    • 启动发送方
    .\bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
    //发送数据
    
    • 1
    • 2

    Linux安装

    参考:https://www.cnblogs.com/lsdb/p/7762871.html

    下载:http://kafka.apache.org/downloads
    在这里插入图片描述

    在这里插入图片描述

    下载完之后,上传到Linux上(我放到了/usr/lib/kafka

    安装kafka

    只需要解压就可以了

    cd /usr/lib/kafka
    
    • 1

    配置单节点

    配置单节点zookeeper

    使用kafka自带的zookeeper

    cd /usr/lib/kafka/kafka_2.11-2.3.0
    mkdir -p zk/data   #创建zookeeper数据存放目录
    mkdir -p zk/logs    #创建zookeeperl存放日志目录
    cd config       #进入配置文件所在目录
    
    mv zookeeper.properties zookeeper.properties.bak #将原配置文件移走,并重命名
    cat > zookeeper.properties << EOF
    tickTime=2000
    dataDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/data
    dataLogDir=/usr/lib/kafka/kafka_2.11-2.3.0/zk/logs
    clientPort=2181
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    到具体情况时注意修昨dataDir和dataLogDir为自己的相应目录

    配置单结点kafka
    cd /usr/lib/kafka/kafka_2.11-2.3.0
    mkdir logs    #创建logs目录用于存放日志
    cd config       #进入配置文件所在目录
    mv server.properties server.properties.bak #将原配置文件移走
    
    cat > server.properties << EOF
    broker.id=1
    listeners=PLAINTEXT://192.168.88.128:9092
    num.network.threads=3
    num.io.threads=8
    socket.send.buffer.bytes=102400
    socket.receive.buffer.bytes=102400
    socket.request.max.bytes=104857600
    log.dirs=/usr/lib/kafka/kafka_2.11-2.3.0/logs
    num.partitions=1
    num.recovery.threads.per.data.dir=1
    offsets.topic.replication.factor=1
    transaction.state.log.replication.factor=1
    transaction.state.log.min.isr=1
    log.retention.hours=168
    log.segment.bytes=1073741824
    log.retention.check.interval.ms=300000
    zookeeper.connect=192.168.88.128:2181
    zookeeper.connection.timeout.ms=6000
    group.initial.rebalance.delay.ms=0
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    上边配置的server.properties的内容基本都是原server.properties的默认配置,到自己安装时主要修改:

    • broker.id–broker的id;修改为任意自己想要的数值(和zookeeper中的id类似的)
    • listeners–监听址址;修改为kafka要监听的地址
    • log.dirs–日志文件存放目录;修改为自己要存放日志的目录
    • zookeeper.connect–zookeeper监听地址;修改为自己的zookeeper的监听地址,如果是集群所有地址全写上用逗号(半角)隔开即可

    启动和停止

    启动前要配置JAVA_HOME,不然无法启动(和tomcat一样虽然输出started了但并有有启,可查看kafkaServer.out)

    启动
    cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
    ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties    #启动zookeeper
    ./kafka-server-start.sh -daemon ../config/server.properties           #启动kafka
    
    • 1
    • 2
    • 3
    停止:
    cd /usr/lib/kafka/kafka_2.11-2.3.0/bin
    ./zookeeper-server-stop.sh    #停止zookeeper
    ./kafka-server-stop.sh        #停止kafka,centos7上可能关不了用kill -9直接杀掉
    
    • 1
    • 2
    • 3
    查看是否有zookeeper和kafka进程
    jps
    
    • 1

    在这里插入图片描述

    搭建集群

    zookeeper改造
    cd /usr/lib/kafka/kafka_2.11-2.3.0/config #进入配置文件路径
    
    cat >> zookeeper.properties << EOF
    initLimit=5
    syncLimit=2
    server.1=192.168.88.128:2888:3888
    server.2=192.168.88.129:2888:3888
    server.3=192.168.88.130:2888:3888
    EOF
    
    echo '1' > ../zk/data/myid          #配置zookeeper的myid文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    kafka改造

    编缉server.properties文件,将所有的zookeeper集群地址追加到zookeeper.connect后,每个地址间用逗号(半角)隔开即可

    集群搭建
    • 将上边安装配置好的kafka打包传到其创机器上,然后解压;
    • 对于zookeeper,各机修改zk/data/myid文件的为不同的值,然后各机重启zookeeper即可。
    • 对于kafka,各机修改server.properties中的broker.id为不同的值,listeners修改为本各机IP,然后各机重启kafka即可。

    测试是否可用

    创建topics:

    ./kafka-topics.sh --create --zookeeper 192.168.88.128:2181 --replication-factor 2 --partitions 1 --topic test_topics
    
    • 1

    在一台上创建生产者:

    ./kafka-console-producer.sh --broker-list 192.168.88.128:9092 --topic test_topics
    
    • 1

    在另一台上创建消费者:

    ./kafka-console-consumer.sh --zookeeper 192.168.220.88:2181 --topic test_topics --from-beginning
    
    • 1

    正常的话在生产者中输入的内容,会在消费者端输出。

    docker安装kafka

    https://blog.csdn.net/y393016244/article/details/126405864

    • 首先创建一个网络
    docker network create app-tier --driver bridge
    ####
    app-tier:网络名称
    –driver:网络类型为bridge
    
    • 1
    • 2
    • 3
    • 4
    • 安装zookeeper
    docker run -d --name zookeeper-server \
        --network app-tier \
        -e ALLOW_ANONYMOUS_LOGIN=yes \
        bitnami/zookeeper:latest
    ####
    Kafka依赖zookeeper所以先安装zookeeper
    -p:设置映射端口(默认2181)
    -d:后台启动
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 查看zookeeper容器日志
    docker logs -f zookeeper-server
    
    • 1
    • 安装Kafka
    docker run -d --name kafka-server \
        --network app-tier \
     -v /etc/localtime:/etc/localtime:ro \
     -v /etc/hosts:/etc/hosts \
        -p 9092:9092 \
        -e ALLOW_PLAINTEXT_LISTENER=yes \
        -e KAFKA_CFG_ZOOKEEPER_CONNECT=local-vm1:2181 \
        -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://local-vm1:9092 \
        bitnami/kafka:latest
    #####
    –name:容器名称
    -p:设置映射端口(默认9092 )
    -d:后台启动
    ALLOW_PLAINTEXT_LISTENER任何人可以访问
    KAFKA_CFG_ZOOKEEPER_CONNECT链接的zookeeper
    KAFKA_ADVERTISED_HOST_NAME当前主机IP或地址(重点:如果是服务器部署则配服务器IP或域名否则客户端监听消息会报地址错误)
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    图形化界面

    docker run -d --name kafka-map \
        --network app-tier \
        -p 9001:8080 \
        -v /usr/local/soft/docker/kafka/kafka-map/data:/usr/local/kafka-map/data \
        -e DEFAULT_USERNAME=admin \
        -e DEFAULT_PASSWORD=admin \
        --restart always dushixiang/kafka-map:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    打开:http://127.0.0.1:9001

  • 相关阅读:
    【力扣2057】值相等的最小索引
    韩国网络安全体系特征与发展前景
    Spring Boot 集成 ElasticSearch
    TLS/SSL(九) TLS1.2与TLS1.3中的ECDH协议
    【nodejs秒杀】expressJWT req.body : undefined和 expressJWT is not a function 解决方法
    GEE土地分类——分类有影像出现空洞我们应该如何填充?(两种方法,集群填充和像素连接方法)
    图的结构模板及遍历
    稳定性、可靠性、可用性、灵活性、解耦性
    【单片机】51单片机存储使用总结
    kafka 自定义Interceptor(通过拦截器对消息进行定制化处理)
  • 原文地址:https://blog.csdn.net/qq_36254947/article/details/133827446