美文网首页hyperledger-fabric学习
CentOS配置fabric-1.0的kafka模式

CentOS配置fabric-1.0的kafka模式

作者: John_Xuxu | 来源:发表于2017-09-12 10:20 被阅读1361次

    目前fabric1.0将广播服务从peer节点中分离出来,形成orderer节点,orderer节点提供原子通信保证(Atomic Communication Guarantee),也叫做有序广播(total-order broadcast)、原子广播(atomic broadcast), 共识(consensus)。即将peer节点发送过来的交易进行排序、打包为区块,然后将区块广播各个组织的peer节点。

    fabric-1.0的orderer提供solo、kafka和bft三种模式,分别可以认为是中心化、半中心化和去中心化。其中solo模式指整个fabric网络依赖于一个orderer节点,而kafka模式依赖于一个kafka集群,bft模式则是去中心化的orderer集群,但目前bft模式并没有在fabric-1.0中实现。

    这里写图片描述

    本文则介绍fabric-1.0的kafka模式搭建。fabric-1.0环境配置请参考这里

    配置Java环境

    下载并解压JDK

    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html中下载jdk-8u131-linux-x64.tar.gz包并存放在任意目录

    将jdk包解压到指定目录

    $ sudo mkdir -p /opt/java
    $ sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /opt/java
    
    

    配置环境变量

    编辑/etc/profile,添加

    export JAVA_HOME=/opt/java/jdk1.8.0_131
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
    

    导入环境变量

    $ source /etc/profile
    

    测试

    java-version

    配置Zookeeper

    zookeeper集群至少3个节点

    下载并解压zookeeper

    http://zookeeper.apache.org/releases.html#download下载 zookeeper-3.4.10.tar.gz,并解压

    $ tar -zxvf zookeeper-3.4.10.tar.gz -C /home/hyperledger/opt/
    

    修改配置文件

    $ cd /home/hyperledger/opt/zookeeper-3.4.10/conf
    $ cp zoo_sample.cfg zoo.cfg
    $ vim zoo.cfg
    

    配置以下参数

    zookeeper-config

    创建myid文件

    在$dataDir中创建myid

    $ mkdir -p /home/hyperledger/data/zookeeper
    $ vim /home/hyperledger/data/zookeeper myid
    

    在文件中写入1
    其他节点相应写入2和3

    启动zookeeper服务

    在各个节点上启动zkServer,确保相应端口的防火墙权限打开

    $ bin/zkServer.sh start
    

    配置kafka集群

    下载并解压kafka包

    http://kafka.apache.org/downloads下载 kafka_2.11-0.10.2.0.tgz,解压文件

    $ tar -zxvf kafka_2.11-0.10.2.0.tgz -C /home/hyperledger/opt/
    

    修改配置文件

    $ vim /home/hyperledger/opt/kafka_2.11-0.10.2.0/config/server.properties
    

    修改broke.id为0,其他节点对应1,2

    kafka-config01

    添加default.replication.factor,建议为broker节点的个数
    添加message.max.bytes和replica.fetch.max.bytes,为了避免传输数据了较大的chaincode出现错误

    kafka-config02

    配置zookeeper集群

    kafka-config03

    启动kafka服务

    后台启动kafka服务

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

    查看日志

    $ tailf logs/server.log
    

    测试

    创建topic

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

    查看topic详情

    $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic cluster-test
    

    启动生产者

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

    启动消费者

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

    在生产者console输入消息进行发送
    在消费者console就可以看到消息了

    修改fabric的configtx.yaml配置文件

    修改fabric/common/configtx/tool/configtx.yaml
    配置OrdererType为kafka,并配置broker列表

    configtx-kafka

    重新生成创世区块文件,重启orderer即可。

    另外zookeeper和kafak集群也可以利用fabric-zookeeper和fabric-kafka镜像,用docker-compose工具进行部署。

    相关文章

      网友评论

        本文标题:CentOS配置fabric-1.0的kafka模式

        本文链接:https://www.haomeiwen.com/subject/zfaqsxtx.html