• Kafka 集群部署


    kafka是一个分布式消息队列,需要依赖ZooKeeper,请先安装好zk集群

    kafka安装包解压

    $ tar xf kafka_2.10-0.9.0.1.tgz
    $ mv kafka_2.10-0.9.0.1 /usr/kafka
    $ cd /usr/kafka

    配置文件

    server.properties
    # The id of the broker. This must be set to a unique integer for each broker.
    broker.id=0
    
    # Zookeeper connection string (see zookeeper docs for details).
    # This is a comma separated host:port pairs, each corresponding to a zk
    # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
    # You can also append an optional chroot string to the urls to specify the
    # root directory for all kafka znodes.
    zookeeper.connect=node1:2181,node2:2181,node3:2181

    规划有3个节点,broker的id应该不同
    node1为broker.id=0
    node2为broker.id=1
    node3为broker.id=2


    node1上复制kafka目录到其他节点

    $ scp -r /usr/kafka node2:/usr/
    $ scp -r /usr/kafka node3:/usr/

    node2、node3上替换broker.id

    $ sed -i -e 's/broker.id=.*/broker.id=1/' /usr/kafka/config/server.properties
    $ sed -i -e 's/broker.id=.*/broker.id=2/' /usr/kafka/config/server.properties


    可以配置环境变量,可选

    export KAFKA_HOME=/usr/kafka
    PATH=$PATH:$KAFKA_HOME/bin


    启动kafka
    1、在3个节点启动ZooKeeper
    2、在3个节点启动kafka

    $ bin/kafka-server-start.sh config/server.properties


    测试
    创建话题,使用kafka-topics.sh

    $ kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --topic test --replication-factor 2 --partitions 3 --create
    $ kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --list
    $ kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --describe --topic test

    创建生成者和消费者
    在任意节点上开启生成者

    $ bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test

    可以在多个节点上开启多个消费者

    $ bin/kafka-console-consumer.sh --zookeeper node1:2181,node2:2181,node3:2181 --from-beginning --topic test 

    --from-beginning 表示从最早开始获取队列的数据
    消费几条数据后,执行下面的语句,看看是否从头开始,以及不同partition返回数据无序性

    $ bin/kafka-console-consumer.sh --zookeeper node1:2181,node2:2181,node3:2181 --topic test

    返回数据是无序的。

  • 相关阅读:
    安装Python及pip
    关于软件测试培训
    终于也为自己开了技术博客
    全球地址联动js包2021最新
    约瑟夫斯问题
    添加二级域名
    mysql导出数据
    mysql导入数据
    shopify
    MySQL数据库简介及常用命令
  • 原文地址:https://www.cnblogs.com/one--way/p/5765692.html
Copyright © 2020-2023  润新知