分布式环境Raft一致性共识算法解读

分布式环境Raft一致性共识算法解读

Raft是分布式环境下的一致性算法,它通过少数服从多数的选举来维持集群内数据的一致性。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我的这篇文章《paxos算法如何容错的–讲述五虎将的实践》),然而它比paxos协议好理解许多(因为paxos协议难以具体实现,所以zookeeper参考paxos实现了它自己的Zab算法)。同样,Raft有一个用GO语言实现的etcd服务,它的功能与Zookeeper相同,在容器操作系统CoreOS作为核心组件被使用。

本文先从算法整体上说明其特点,再细说其实现。[……]

阅读全文

区块链开源实现hyperledger fabric架构详解

区块链开源实现hyperledger fabric架构详解

hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。

1、区块链解决方案的特性

1.1 分布式帐本

区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据,详见下节)在任意一台节点(不包括客户端)上都有。所以,其优点是数据很难造假,造假后也可以通过追溯记录来追究法律责任。而缺点就是极[……]

阅读全文

区块链开源实现fabric快速部署及CLI体验

区块链开源实现fabric快速部署及CLI体验

本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装工具(如ubuntu操作系统请把yum命令换成apt-get)。

1、搭建e2e_cli环境快速部署fabric的11个步骤:

1、安装docker_ce版。

如果已经安装了老版docker,请先卸载。

yum remove docker docker-common docker-sel[......]

阅读全文

从码农到工程师:只要做到这6点

从码农到工程师:只要做到这6点

许多程序员自称码农,因为每天事情总也做不完,而这些工作也没有给自己带来职业上的提升,总在原地打转,自己的工作似乎随时可被新人替换,可有可无。于是,年轻些的考虑着转管理或者转行,年纪大些的则被所谓的40岁危机困扰焦虑着。另一方面,有些程序员工作高效,能力出众,每当机会来临时总能获得职位上升,收入迅速的提高,个人价值的提升又从精神上给自己带来满足感,常常斗志昂扬,而这样能解决复杂问题的程序员才叫工程师。本文中笔者将根据自己10多年从业经历谈谈如何从码农升级到工程师。

事实上,互联网行业的项目需求从来不是静态的,项目是动态的、永远在不停迭代,所以即使你能力再好效率再高,也不可能让你处在空档期,[……]

阅读全文

git仓库代码统计

git仓库代码统计

虽然以代码行数来衡量项目或者程序员并不是一件靠谱的事,但是从统计角度看趋势对于技术管理人员还是很有帮助的!推荐一个比较好用的git仓库代码统计工具:git_stats,它用于按git提交人、提交次数、修改文件数、代码行数、注释量在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便。实际上,这么多功能通常都是用WEB在多个页面上显示的,git_stats也是如此,它需要你先安装好ruby以生成基础的页面,再用gem安装好git_stats,最后用git_stats一条语句即可生成展示页面。这些静态页面如需共享,那么搭个nginx显示静态页面即可。废话不多说,演示下步骤:

1、首先[……]

阅读全文

创造 :未来商业就是智能商业 (6月底CSDI大会预告)

创造 :未来商业就是智能商业 (6月底CSDI大会预告)

引言:一个好的行业,只要开放行业就好,少搞顶层设计,根据业务决定做什么,故为“因之”。硅谷成功的秘诀之一是:政府没有能力管,只把商业发生的事情交给商业本身。 燃えてヒーロー 沖田浩之 – 僕らのアニメ・ヒッツ 作者▕  董笑含

编辑▕  七七

人们在满足衣食住行基本需求后,多少会追求享受和娱乐,随着经济在人民生活水平中的提高,消费升级带来更多商机。科技的发展让我们足不出户的购物、交友、轻娱乐、游戏等,甚至移动互联网在前几年兴起之时,社交功能无不充斥在每个应用中。如今衍生的摄影、交易、机器人、直播技术、无人驾驶、语音识别、图像识别等,而“易经”告诉我们[……]

阅读全文

Udp的反向代理:nginx

Udp的反向代理:nginx

在实时性要求较高的特殊场景下,简单的UDP协议仍然是我们的主要手段。UDP协议没有重传机制,还适用于同时向多台主机广播,因此在诸如多人会议、实时竞技游戏、DNS查询等场景里很适用,视频、音频每一帧可以允许丢失但绝对不能重传,网络不好时用户可以容忍黑一下或者声音嘟一下,如果突然把几秒前的视频帧或者声音重播一次就乱套了。使用UDP协议作为信息承载的传输层协议时,就要面临反向代理如何选择的挑战。通常我们有数台企业内网的服务器向客户端提供服务,此时需要在下游用户前有一台反向代理服务器做UDP包的转发、依据各服务器的实时状态做负载均衡,而关于UDP反向代理服务器的使用介绍网上并不多见。本文将讲述udp协[……]

阅读全文

《见识》读书笔记:大家智慧

《见识》读书笔记:大家智慧

周末抽空在读吴军老师的《见识》,今天在读“大家智慧”章节时对商业的一些看法有所感,在此记录一二。

吴军提到拉里佩奇的商业智慧是从本质中寻找商业模式。这个本质就是将有用的信息带给用户,想做到这一点其实挺难的。比如百度,你想搜索对你有用的信息,比起google来需要更多的技巧,添加更多的关键字。为什么呢?产品的商业价值在影响着这一点,百度的竞价排名里认为你需要综合考虑百度的利益,所以结果展示不会以对你有用的信息传达给你为首要价值。说到这里,对当年google离开中国又多了一些理解,因为中国监管对搜索结果展示的要求确实违背了google的核心价值。当然,展示有用的信息也需要高超的技术才能实现。[……]

阅读全文

详解python django面向关系数据库的ORM对象映射系统(1)

详解python django面向关系数据库的ORM对象映射系统(1)

django是一套开发成本低、迭代周期快的python web框架,而如mysql等关系数据库则是网站的必备组件,django通过设计一套python对象与数据库表的映射系统ORM,使得开发者不用写一行SQL语句就能实现极其复杂的关系数据库操作,特别是关联多张表的SQL操作。这让开发者的精力可以放在业务的迭代实现中,忽略SQL细节,同时提供了还不错的SQL语句性能。本文主要分析该ORM系统的实现原理及其设计思路,顺带描述python元类这个“黑魔法”。接下来,我们首先描述django model的一般用法,再说明ORM系统的结构,以及为何如此设计。

关系数据库相对于hbase等面向海量数[……]

阅读全文

BDTC2017北京大数据技术大会参会心得

BDTC2017北京大数据技术大会参会心得

12月7、8、9号三天在北京参加了BDTC大会,主题是人工智能与大数据,除了第一天的全员大会外,我参加了第二天上午的大数据云服务、下午的知识图谱、第三天的机器学习论坛。在此做一个回顾,也希望能为未参加大会的朋友们分享从我个人角度思考的心得。

禇晓文教授的《基于GPU的性能建模与分布式深度学习框架评价》是在GPU训练性能上讨论了benchmark分析方法。从CPU到GPU后,训练时间降低了一些,但能降得更多些吗?换成多块GPU显卡,可以再下降吗?应当采购什么样的显卡,性价比最好?这场分享回答了以上问题。先来看一张图:

可见,显卡的计算单元ALU速度很快,从518到了15000[……]

阅读全文

浙公网安备 33010802009076号