zoukankan      html  css  js  c++  java
  • kafka搭建到配置borker集群(项目开发-区块链)

    (以下分享了搭建kafka需要使用到的命令,差不多齐了,这里没有提到kafka-manager ,同学可以在网上自行查找)

    最近公司的项目比较紧,先说下使用kafka的用处:

        要替代原来 撮合引擎发数据到交易所中,原来使用api方式,弊端:若一方出现宕机,则会发生数据丢失情况,为避免,这里开始搭建kafka消息分布式系统。

    顶着小压力~开始研究学习,在一周时间之后,终于我的第一个集群分布式kafka搭建完成。

    在这其中走了不少坑,在这里我把自己从开始过程到搭建完成的使用命令分享给大家,(欢迎指出错误~)

    我用的环境是

    mac系统 (unix)

    php 7.2.1 (虽然没多大关系~)

    ------------------------- kafka 安装 -------------------------
    安装kafka前需先安装jdk
    yum install java

    wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/kafka/1.1.0/kafka_2.11-1.1.0.tgz
    tar -xzf kafka_2.11-1.1.0.tgz

    使用说明具体详见http://kafka.apache.org/quickstart

    -------------------------编译安装kafka-------------------------
    ***********注意!!***********
    若你是mac系统,请同样使用编译安装,尽量不用brew安装,原因:1,版本旧 2,个别配置与官网配置不一致,导致不能很好进行负载均衡。
    *********************************

    1 安装kafka
    首先从官网获取安装包 (网址 http://kafka.apache.org/downloads)
    这里目前选用kafka_2.11-1.1.1.tgz 版本


    2 在src目录中解压,打开进入kafka_2.11-1.1.1文件


    3 开始启动kafka,首先需要启动zookeeper(安装说明在下面)

    tips:为方便快捷,需要将kafka中bin目录加载到环境变量中 打开~/.bash_profile
    添加一条 export PATH=/Users/apple/src/kafka-2.11-1.1.1/bin:$PATH
    保存退出,source ~/.bash_profile

    开始命令:(每次开机都要启动)

    (以下kafka中conf里面的配置文件都已copy到/usr/local/etc/kafka/目录下,方便管理 )
    启动zookeeper系统
    zookeeper-server-start.sh /usr/local/etc/kafka/zookeeper.properties
    启动kafka系统
    kafka-server-start.sh /usr/local/etc/kafka/server.properties

    新建topic
    kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic zzyk
    #--zookeeper是集群列表,可以指定所有节点,也可以指定为部分列表
    #--replication-factor 为复制数目,数据会自动同步到其他broker上,防止某个broker宕机数据丢失
    #--partitions 一个topic可以切分成多个partition,一个消费者可以消费多个partition,但一个partition只能被一个消费者消费


    生产消息
    kafka-console-producer.sh --broker-list localhost:9092 --topic new_topic

    消费消息
    kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic new_topic

    查看当前全部topic
    kafka-topics.sh --list --zookeeper localhost:2181

    查看当前主题详细信息
    kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe --topic new_topic

    查看全部主题信息
    kafka-topics.sh --describe --zookeeper localhost:2181

    查看consumer group列表(新版命令)
    kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9092 --list
    查看consumer group列表(老命令)
    kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --list

    删除主题:
    kafka-topics.sh --delete --zookeeper localhost:2181 --topic new_topic

    若需要真正删除,去除mark

    可以参考该同学博文(https://blog.csdn.net/fengzheku/article/details/50585972)

    这里也分享下:

      此时你若想真正删除它,可以如下操作:

         (1)登录zookeeper客户端:命令:./bin/zookeeper-client

         (2)找到topic所在的目录:ls /brokers/topics

         (3)找到要删除的topic,执行命令:rmr /brokers/topics/【topic name】即可,此时topic被彻底删除。

    另外被标记为marked for deletion的topic你可以在zookeeper客户端中通过命令获得:ls /admin/delete_topics/【topic name】,

        如果你删除了此处的topic,那么marked for deletion 标记消失


    删除 消费者组
    kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --delete --group <group-name>

    查看某个组中的topic信息
    kafka-consumer-groups.sh --zookeeper 127.0.0.1:2181 --group 1 --describe


    -------------------------搭建Kafka broker集群-------------------------

    修改config/server.properties文件 复制此配置文件分别为server-1.properties,server-2.properties,server-3.properties


    //准备三份用于启动kafka服务的配置
    cp server.properties server-0.properties
    cp server.properties server-1.properties
    cp server.properties server-2.properties
    三份配置中都要修改以下
    broker.id=0(三个配置中分别修改为0,1,2)
    port=9092(三个配置中分别修改为9092,9093,9094)
    log.dirs=/tmp/kafka-logs-0(三个配置中分别修改为/tmp/kafka-logs-0,/tmp/kafka-logs-1,/tmp/kafka-logs-2)
    num.partitions=3 (都设置为3,即每个topic默认三个partition)


    配置完毕后,令开启三个终端 开启kafka
    kafka-server-start.sh /usr/local/etc/kafka/server-1.properties
    kafka-server-start.sh /usr/local/etc/kafka/server-2.properties
    kafka-server-start.sh /usr/local/etc/kafka/server-3.properties

    最后就可以在php中使用kafka了~~


    安装zookeeper (若已经安装kafka,则其包内带有zookeeper在 src/kafka2.11-1.1.1/libs目录中 )
    wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
    tar zxvf zookeeper-3.4.6.tar.gz
    cd zookeeper-3.4.6
    cp -rf conf/zoo_sample.cfg conf/zoo.cfg
    cd conf
    vim zoo.cfg
    修改zook.cfg里头的dataDir (数据路径这里配置路径为dataDir=/usr/local/var/lib/zookeeper)


    重要kafka配置参数中文说明
    http://debugo.com/kafka-params/
    https://www.cnblogs.com/weixiuli/p/6413109.html
    Kafka集群生产/消费的负载均衡(Rebalance)测试
    https://blog.csdn.net/cjf_wei/article/details/57121845

    --------------- kafka php客户端安装(php-rdkafka) --------------
    1.安装 librdkafka
    git clone https://github.com/edenhill/librdkafka
    cd librdkafka
    ./configure
    make
    sudo make install

    2.安装php-rdkafka
    git clone https://github.com/arnaud-lb/php-rdkafka.git
    cd php-rdkafka
    phpize
    ./configure
    make all -j 5
    sudo make install

    vi /usr/local/lib/php.ini
    加入 extension=rdkafka.so

    -------------------------为完成此文档,提交到公司手册中,花了不少时间,也希望大家多多指出其中不正确地方,不胜感激~-------------------------

          人的一切痛苦,本质上都是对自己的无能的愤怒。

  • 相关阅读:
    命令[46]
    命令[53]
    命令[48]
    命令[43]
    命令[52]
    命令[55]
    命令[41]
    MYSQL[02]大小写问题
    hdu 1811
    hdu 1829
  • 原文地址:https://www.cnblogs.com/darrenzzy/p/9343864.html
Copyright © 2011-2022 走看看