一、基于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服务实战相关推荐

  1. fabric sdk php,基于 Fabric-SDK-Go 的Web项目实战之使用Fabric-SDK-Go满足依赖

    作者:ChainDesk韩小东 ChainDesk官网:http://www.chaindesk.cn/?20190118jinritoutiaomeiti 目标 1.根据项目要求满足所需依赖 2.使 ...

  2. 【kafka系列教程15】kafka持久化

    不要害怕文件系统! Kafka relies heavily on the filesystem for storing and caching messages. There is a genera ...

  3. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程

    最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...

  4. Twitter情绪分析全面教程指导--基于实际数据集和代码实战

    目录 Introduction 1. Understand the Problem Statement 2. Tweets Preprocessing and Cleaning 3. Story Ge ...

  5. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【十】——使用CacheCow和ETag缓存资源...

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 本文将使用一个开源框架CacheCow来实现针对Http请求资源缓存,本文主要介绍服务器端的 ...

  6. Hyperledger Fabric 2.0 官方文档中文版 第6章 教程(下)

    Hyperledger Fabric 2.0 官方文档中文版 第6章 教程下 总目录 6.教程(下) 使用CouchDB 为什么使用CouchDB? 在Hyperledger Fabric中启用Cou ...

  7. Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念

    Hyperledger Fabric 2.0 官方文档中文版 第3章 关键概念 总目录 3.关键概念 引言 什么是区块链? 区块链为什么有用? 什么是Hyperledger Fabric? Hyper ...

  8. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

  9. 【论文阅读】Fair and Efficient Gossip in Hyperledger Fabric -- ICDCS

    文章目录 摘要 1 介绍 2 超级账本结构的解剖 A. Fabric架构 B. Fabric中事务的执行 C. Fabric的一致性 3 八卦在织物中传播 A.八卦在Fabric中传播 B.八卦对带宽 ...

  10. Hyperledger Fabric on SAP Cloud Platform(SAP云平台上的超级账本简介)

    今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...

最新文章

  1. python的类方法可以用对象和类名来调用吗_怎么调用python中的类方法
  2. Netflix:我们是如何评估Codec性能的?
  3. Java核心技术笔记——第 12 章 反射
  4. 一款漂亮的赞助打赏单页界面美化版源码
  5. MySQL-02-windows下查看frm,myi,myd
  6. 内网ip 设置_我的天,大牛黑客轻而易举打穿三层内网,吃惊
  7. 三角形外心的坐标公式
  8. c语言头文件和函数库,C语言的头文件和库文件(函数库)
  9. stata面板数据gmm回归_12短动态面板数据模型1-差分GMM估计-Stata软件操作教程
  10. 香橙派python编程_香橙派Orange Pi 4开发板在Ubuntu系统下使用python 控制GPIO
  11. ROS ros::NodeHandle nh(“~“)
  12. 3D游戏建模:3dmax对场景进行布局和建模
  13. 开根号的笔算算法图解_excel中开根号的计算方法步骤详解
  14. IDEA Springboot docker 构建项目
  15. Linux下父进程子进程先后终止的不同处理
  16. Ubuntu20.04突然丢失网络时恢复的办法
  17. 黑马 - poi Excel
  18. 三大视角,聊聊我眼中的广告系统
  19. offlineimap读取qq邮箱
  20. mid代表计算机,MID是什么

热门文章

  1. Instagram技术透析:Mike Krieger, Instagram at the Airbnb tech talk, on Scaling Instagram
  2. Bristol的第6篇密码学
  3. 各类4G手机进入工参模式查看手机信息
  4. Android调用默认浏览器打开指定url
  5. iOS开发问题之Could not instantiate class named NSLayoutConstraint
  6. 定向搜索(beam search)
  7. The Bayes Risk选择的问题
  8. 孙鑫VC学习笔记:第十二讲 (六) 读写注册表
  9. 【视频】Copula算法原理和R语言股市收益率相依性可视化分析
  10. linux network 脚本,自动修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本...