您当前的位置: 首页 >  kafka
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hyperledger Fabric教程(15)--基于Kafka的Order服务实战

软件工程小施同学 发布时间:2021-01-09 20:50:10 ,浏览量:0

 

一、基于Kafka的order服务

分布式的排序服务

基于Kafka的排序服务利用Kafka作为交易的消息队列,实现高吞吐量的数据分发。

每个通道都对应Kafka的一个主题(topic)。

 

排序服务节点在不同阶段充当不同的角色。

 

1. 接收交易阶段:

排序服务节点充当的是Kafka的生产者 (producer),接收到交易后转发给对应通道的主题。

 

2. 消息处理阶段:

排序服务节点充当的是Kafka的消费者 (consumer),实时监听消息进行后续的处理,生成区块或者交易分割消息等。

 

二、基于Kafka的order最佳实践

 

1. Kafka和Zookeeper的节点数 

Kafka的节点数是K 

Zookeeper的节点数是Z

K最少需要4个节点

才可以在1个节点宕机以后还能继续提交交易,排序和创建新的通道。

 

Z选择3、5或7个节点都可以。

选择奇数个节点可以避免脑裂,1个 节点会存在单点问题,7个 以上的节点就太多了。

 

三、实践所需的yaml文件 docker-compose-cli.yaml

  

docker-compose-base.yaml

 

peer-base.yaml

 

docker-compose-couch.yaml

 

dc-orderer-kafka-base.yml

 

dc-orderer-kafka.yml

 

 

 

四、数据持久化

容器

容器内路径

宿主机路径

peer

/var/hyperledger/production

./p0o1

orderer

/var/hyperledger/production/orderer

./orderer0

kafka

/tmp/kafka-logs

./k0

couchdb

/opt/couchdb/data

./c0

 

 

五、Kafka的配置 min.insync.relicas = 2 (M)

至少写入的副本数,一个消息写入副本的个数不小于这个数才确认写入成功。

这个值越大系统 越可靠,越小性能越高。

这里设置2的原因是避免单点故障。

 

default.relication.factor = 3 (N)

创建主题时保存的副本数,创建通道时需要有至少N个节点同步完成数据才能创建成功。

N的 值需要满足 1

关注
打赏
1665320866
查看更多评论
立即登录/注册

微信扫码登录

0.0432s