Hyperledger Fabric教程(15)--基于Kafka的Order服务实战
一、基于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<M<N<K , N<K原因是K需要有一个节点的冗余。
unclean.leader.clection.enable = false
是否允许不在副本同步集合中的节点选举为主节点,主节点负责消息的读写。
一条消息只有在 副本同步集合中所有的节点都同步完成才算提交成功。
如果允许不在同步集合中的节点选举为 主节点,就有数据丢失的风险。
Hyperledger Fabric教程(15)--基于Kafka的Order服务实战相关推荐
- fabric sdk php,基于 Fabric-SDK-Go 的Web项目实战之使用Fabric-SDK-Go满足依赖
作者:ChainDesk韩小东 ChainDesk官网:http://www.chaindesk.cn/?20190118jinritoutiaomeiti 目标 1.根据项目要求满足所需依赖 2.使 ...
- 【kafka系列教程15】kafka持久化
不要害怕文件系统! Kafka relies heavily on the filesystem for storing and caching messages. There is a genera ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程
最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...
- Twitter情绪分析全面教程指导--基于实际数据集和代码实战
目录 Introduction 1. Understand the Problem Statement 2. Tweets Preprocessing and Cleaning 3. Story Ge ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【十】——使用CacheCow和ETag缓存资源...
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 本文将使用一个开源框架CacheCow来实现针对Http请求资源缓存,本文主要介绍服务器端的 ...
- Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(下)
Hyperledger Fabric 2.0 官方文档中文版 第6章 教程下 总目录 6.教程(下) 使用CouchDB 为什么使用CouchDB? 在Hyperledger Fabric中启用Cou ...
- Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念
Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念 总目录 3.关键概念 引言 什么是区块链? 区块链为什么有用? 什么是Hyperledger Fabric? Hyper ...
- HyperLedger Fabric Introduction——区块链超级账本介绍
介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...
- 【论文阅读】Fair and Efficient Gossip in Hyperledger Fabric -- ICDCS
文章目录 摘要 1 介绍 2 超级账本结构的解剖 A. Fabric架构 B. Fabric中事务的执行 C. Fabric的一致性 3 八卦在织物中传播 A.八卦在Fabric中传播 B.八卦对带宽 ...
- Hyperledger Fabric on SAP Cloud Platform(SAP云平台上的超级账本简介)
今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...
最新文章
- python的类方法可以用对象和类名来调用吗_怎么调用python中的类方法
- Netflix:我们是如何评估Codec性能的?
- Java核心技术笔记——第 12 章 反射
- 一款漂亮的赞助打赏单页界面美化版源码
- MySQL-02-windows下查看frm,myi,myd
- 内网ip 设置_我的天,大牛黑客轻而易举打穿三层内网,吃惊
- 三角形外心的坐标公式
- c语言头文件和函数库,C语言的头文件和库文件(函数库)
- stata面板数据gmm回归_12短动态面板数据模型1-差分GMM估计-Stata软件操作教程
- 香橙派python编程_香橙派Orange Pi 4开发板在Ubuntu系统下使用python 控制GPIO
- ROS ros::NodeHandle nh(“~“)
- 3D游戏建模:3dmax对场景进行布局和建模
- 开根号的笔算算法图解_excel中开根号的计算方法步骤详解
- IDEA Springboot docker 构建项目
- Linux下父进程子进程先后终止的不同处理
- Ubuntu20.04突然丢失网络时恢复的办法
- 黑马 - poi Excel
- 三大视角,聊聊我眼中的广告系统
- offlineimap读取qq邮箱
- mid代表计算机,MID是什么
热门文章
- Instagram技术透析:Mike Krieger, Instagram at the Airbnb tech talk, on Scaling Instagram
- Bristol的第6篇密码学
- 各类4G手机进入工参模式查看手机信息
- Android调用默认浏览器打开指定url
- iOS开发问题之Could not instantiate class named NSLayoutConstraint
- 定向搜索(beam search)
- The Bayes Risk选择的问题
- 孙鑫VC学习笔记:第十二讲 (六) 读写注册表
- 【视频】Copula算法原理和R语言股市收益率相依性可视化分析
- linux network 脚本,自动修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本...