• kafka系列一、kafka安装及部署、集群搭建


    一、环境准备

    • 操作系统:Cent OS 7

    • Kafka版本:kafka_2.10

    • Kafka官网下载:请点击

    • JDK版本:1.8.0_171

    • zookeeper-3.4.10

    二、kafka安装配置

    1、下载Kafka并解压

      下载:

    curl -L -O http://mirrors.cnnic.cn/apache/kafka/0.9.0.0/kafka_2.11-2.0.1.tgz 

      解压:

    tar zxvf kafka_2.11-2.0.1.tgz 

    2、Kafka目录介绍

    • /bin 操作kafka的可执行脚本,还包含windows下脚本

    • /config 配置文件所在目录

    • /libs 依赖库目录

    • /logs 日志数据目录,目录kafka把server端日志分为5种类型,分为:server,request,state,log-cleaner,controller

    3、配置

    • 配置zookeeper进入kafka安装工程根目录编辑config/server.properties

    • kafka最为重要三个配置依次为:broker.id、log.dir、zookeeper.connect,

    • 其他kafka server端config/server.properties参数说明和解释如下:

      server.properties配置属性说明

    4、启动Kafka

    • 启动

    进入kafka目录,敲入命令
     bin/kafka-server-start.sh config/server.properties &
    • 检测2181与9092端口

    netstat -tunlp|egrep "(2181|9092)"
    tcp        0      0 :::2181                     :::*                        LISTEN      19787/java          
    tcp        0      0 :::9092                     :::*                        LISTEN      28094/java
    说明:
    
    Kafka的进程ID为28094,占用端口为9092
    
    QuorumPeerMain为对应的zookeeper实例,进程ID为19787,在2181端口监听

    5、单机连通性测试

    启动2个XSHELL客户端,一个用于生产者发送消息,一个用于消费者接受消息。

    • 运行producer,随机敲入几个字符,相当于把这个敲入的字符消息发送给队列。

    bin/kafka-console-producer.sh --broker-list 192.168.1.105:9092 --topic test

    说明:早版本的Kafka,–broker-list 192.168.1.181:9092需改为–zookeeper 192.168.1.181:2181

    • 运行consumer,可以看到刚才发送的消息列表。

    bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.105:9092  --topic test --from-beginning

    说明:早版本的Kafka,--bootstrap-server 192.168.1.181:9092需改为–zookeeper 192.168.1.181:2181

    注意:

    producer,指定的Socket(192.168.1.181+9092),说明生产者的消息要发往kafka,也即是broker

    consumer, 指定的Socket(192.168.1.181+2181),说明消费者的消息来自zookeeper(协调转发)

    上面的只是一个单个的broker,下面我们来实验一个多broker的集群。

    三、集群搭建

    一、copy /kafka_2.11-2.0.1/config/server.properties文件修改以下三个地方(zk地址相同)

    broker.id=1
    listeners=PLAINTEXT://192.168.1.105:9092
    zookeeper.connect=192.168.1.105:2181

     二、启动zk、启动三个kafka

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

    三、集群测试

    1、在broke1创建topic

    bin/kafka-topics.sh --create --zookeeper 192.168.1.105:2181 --replication-factor 1 --partitions 1 --topic test4

    2、broke2和broke3主机上利用命令行工具创建一个consumer程序

    bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.106:9092  --topic test4 --from-beginning
    bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.107:9092  --topic test4 --from-beginning

    3、在broke1主机上利用命令行工具创建一个producer程序

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test4

    4、broke1输入11、broke2和broke3同时收到11 

     四、Kafka常用命令

     (1)启动kafka

    nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &

    (2)查看topic

    bin/kafka-topics.sh --list --zookeeper localhost:2181

    (3)控制台消费

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic middleware --from-beginning

    (4)创建生产者

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

    (5)删除topic

    • 删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
    • 如果配置了delete.topic.enable=true直接通过命令删除,如果命令删除不掉,直接通过zookeeper-client 删除掉"/brokers/topics/"目录下相关topic节点。

     注意: 如果你要删除一个topic并且重建,那么必须重新启动kafka,否则新建的topic在zookeeper的/brokers/topics/test-topic/目录下没有partitions这个目录,也就是没有分区信息。

  • 相关阅读:
    【Django】admin后台自定义导出全部数据并且返回自定义中文名
    关于NAT hairpin 功能相关知识
    web
    applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder 错误解决方法
    redis事件
    redis高可用性
    redis持久化
    Dockerfile同时配置tomcat和jar包运行
    Docker注册中心
    Docker构建镜像
  • 原文地址:https://www.cnblogs.com/wangzhuxing/p/10017648.html
Copyright © 2020-2023  润新知