一、基于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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?