美文网首页
kafka集群搭建与使用

kafka集群搭建与使用

作者: knock | 来源:发表于2020-07-05 02:58 被阅读0次

    kafka集群搭建与使用

    在 master 节点上

    1.下载 kafka_2.11-0.10.0.1.tar.gz

    1. 安装 kafka(一个broker) 解压安装包
      tar -xzvf kafka_2.11-0.10.0.1.tar.gz
    2. 修改 server.properties
      cd kafka_2.11-0.10.0.1/config/
      vi server.properties

    修改内容如下:

    ====================================
    broker.id=0
    连接zookeeper
    zookeeper.connect=master:2181,worker1:2181,worker2:2181
    可删除topic
    delete.topic.enable=true
    添加副本(partition的副本被称为replica,每个分区可以有多个副本,并且在副本集中会存在一个leader副本,所有的读写请求都会通过leader完成,follower复制只负责备份数据。副本会均匀分配到多台broker上,当leader节点挂掉之后,会从副本集中重新选出一个副本作为leader继续提供服务 需替换group.id才能消费)
    default.replication.factor=3
    分区数
    num.partitions=3
    (代表3个副本可用)
    offsets.topic.replication.factor=3
    transaction.state.log.replication.factor=3
    transaction.state.log.min.isr=3
    (端口决定kafka 客户端连接的端口)
    listeners=PLAINTEXT://net1:9092
    (如果为内网则需要填写内网ip 如果为外网需填写外网ip)
    advertised.listeners=PLAINTEXT://192.168.1.1:9092

    ====================================

    1. 将 kafka_2.11-0.10.0.1 文件夹复制到另外两个节点下

    在master节点上
    scp -r kafka_2.11-0.10.0.1/ worker1:~/
    scp -r kafka_2.11-0.10.0.1/ worker2:~/

    并修改每个节点对应的 server.properties 文件的 broker.id: master为0,worker1为1,worker2为2

    启动 Kafaka 集群

    在master节点上
    在worker1节点上
    在worker2节点上
    (bin目录下守护进程方式启动)
    ./kafka-server-start.sh -daemon ../config/server.properties &

    创建 topic 和 显示 topic 信息

    在master节点上 创建topic(replication-factor 副本数不能多于kafka节点数)
    bin/kafka-topics.sh --create --zookeeper net1:2181 --replication-factor 3 --partitions 3 --topic infoy
    在master节点上 显示topic信息
    bin/kafka-topics.sh --describe --zookeeper net1:2181 --topic infox

    在master节点上 列出topic
    bin/kafka-topics.sh --list --zookeeper net1:2181

    创建 producer

    在master节点上 测试生产消息
    bin/kafka-console-producer.sh --broker-list net1:9092 -topic group

    创建 consumer

    在master,node节点上 测试消费
    bin/kafka-console-consumer.sh --bootstrap-server net1:9092,net2:9092 --topic xxx --from-beginning

    删除 topic 和关闭服务

    在master节点上 删除topic
    bin/kafka-topics.sh --delete --zookeeper net1:2181 --topic test

    关闭

    在master节点上 关闭kafka
    ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
    在worker1节点上 关闭kafka
    ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh
    在worker2节点上 关闭kafka
    ./kafka_2.11-0.10.0.1/bin/kafka-server-stop.sh

    在master节点上 关闭zookeeper
    ./zookeeper-3.4.8/bin/zkServer.sh stop
    在worker1节点上 关闭zookeeper
    ./zookeeper-3.4.8/bin/zkServer.sh stop
    在worker2节点上 关闭zookeeper
    ./zookeeper-3.4.8/bin/zkServer.sh stop

    listeners与advertised_listeners作用

    比如说:
    listeners: INSIDE://172.17.0.10:9092,OUTSIDE://172.17.0.10:9094
    advertised_listeners: INSIDE://172.17.0.10:9092,OUTSIDE://<公网 ip>:端口
    kafka_listener_security_protocol_map: "INSIDE:SASL_PLAINTEXT,OUTSIDE:SASL_PLAINTEXT"
    kafka_inter_broker_listener_name: "INSIDE"
    advertised_listeners 监听器会注册在 zookeeper 中;

    当我们对 172.17.0.10:9092 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 INSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口;

    同理,当我们对 <公网 ip>:端口 请求建立连接,kafka 服务器会通过 zookeeper 中注册的监听器,找到 OUTSIDE 监听器,然后通过 listeners 中找到对应的 通讯 ip 和 端口 172.17.0.10:9094;

    总结:advertised_listeners 是对外暴露的服务端口,真正建立连接用的是 listeners。

    相关文章

      网友评论

          本文标题:kafka集群搭建与使用

          本文链接:https://www.haomeiwen.com/subject/rpgpqktx.html