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

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

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

  • 相关阅读:
    LeetCode——Generate Parentheses
    LeetCode——Best Time to Buy and Sell Stock IV
    LeetCode——Best Time to Buy and Sell Stock III
    LeetCode——Best Time to Buy and Sell Stock
    LeetCode——Find Minimum in Rotated Sorted Array
    Mahout实现基于用户的协同过滤算法
    使用Java对文件进行解压缩
    LeetCode——Convert Sorted Array to Binary Search Tree
    LeetCode——Missing Number
    LeetCode——Integer to Roman
  • 原文地址:https://www.cnblogs.com/darrenzzy/p/9343864.html
Copyright © 2011-2022 走看看