• 【kafka】 | 01 | kafka和zookeeper的部署及使用方法


    0 环境配置

    三台服务器(每台都需要部署kafka、zk)

    1 kafka简介

    Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

    2 kafka部署

    2.1 官网地址

    http://kafka.apache.org/quickstart
    
    • 1

    2.2 下载

    wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz
    
    • 1

    2.3 解压到指定目录

    tar -xzf kafka_2.11-1.1.0.tgz -C /opt/
    
    • 1

    2.3.1 使用kafka自带的zk

    cd /opt/kafka_2.11-1.1.0/bin
    ./zookeeper-server-start.sh config/zookeeper.properties
    
    • 1
    • 2

    日志信息:

     INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
    
    • 1

    可以看到zookeeper服务的端口为2181

    2.3.2 使用自己部署的zk

    2.3.2.1 下载地址
    https://zookeeper.apache.org/releases.html
    
    
    • 1
    • 2

    在这里插入图片描述

    https://archive.apache.org/dist/zookeeper/
    
    • 1

    在这里插入图片描述

    目录 /usr/local/zookeeper-3.5.9
    启动命令 ./bin/zkServer.sh start
    
    • 1
    • 2

    2.4 启动kafka

    bin/kafka-server-start.sh config/server.properties
    
    • 1

    其中kafka的端口为9092,在下面这条信息可以看到

    INFO Registered broker 0 at path /brokers/ids/0 with addresses: ArrayBuffer(EndPoint(ambari.master.com,9092,ListenerName(PLAINTEXT),PLAINTEXT)) (kafka.zk.KafkaZkClient)
    
    • 1

    3 kafka的使用

    3.1 创建主题

    ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    Created topic "test".
    
    • 1
    • 2

    3.2 查看主题

    ./kafka-topics.sh --list --zookeeper localhost:2181
    test
    
    • 1
    • 2

    3.3 发送消息

    Kafka带有一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。 启动生产者

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
    
    • 1

    输入几条消息发送到服务器

    >This is a message
    >This is another message
    
    • 1
    • 2

    3.4启动消费者

    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    
    • 1

    然后就可以在命令行看到生产者发送的消息了

    This is a message
    This is another message
    
    • 1
    • 2

    3.5设置多个broker的集群

    3.5.1为每个broker创建一个配置文件

    cp config/server.properties config/server-1.properties
    cp config/server.properties config/server-2.properties
    
    • 1
    • 2

    3.5.2 启动新节点

    bin/kafka-server-start.sh config/server-1.properties &
    bin/kafka-server-start.sh config/server-2.properties &
    
    • 1
    • 2

    3.5.3 创建三个副本的新主题

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
    
    • 1

    运行describe topics查看主题的信息

    ./kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
    
    • 1

    3.5.4 发送消息

    ./kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
    >my test message 1
    >my test message 2
    
    • 1
    • 2
    • 3

    3.5.5 消费消息

    ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
    my test message 1
    my test message 2
    
    • 1
    • 2
    • 3

    3.5.6 测试容错及发现的问题

    ps aux | grep server.properties
    
    • 1
  • 相关阅读:
    31【window 对象】
    【gzoj】鸡蛋的硬度【基础概率DP】
    【C++】从使用string类到模拟实现string类
    centos 7 仅安装mysql client
    Day13:数据结构之(B-树)2-3树
    常用图像卷积核类型小结
    pod install速度慢的终极解决方案
    文字生成图片
    初始化一个ArrayList的多种方式
    httpd服务
  • 原文地址:https://blog.csdn.net/u013916029/article/details/127768308