分布式技术

区块链技术与分布式系统是怎样达成一致的

 ̄綄美尐妖づ 提交于 2020-03-31 11:03:19
区块链技术与分布式系统是怎样达成一致的 在区块链技术中每发布一个新的交易时,区块链必须要确认这样一个问题:这个交易有效吗?如果有效,它应该记录在分布式网络上吗?这个问题涉及许多复杂和高风险的变量;下面源中瑞(区块链技术开发ruiecjo)给您简单讲解一下:哪些方法允许所有各方就交易账簿达成一致,以及哪些协议如何允许区块链内的分布式系统达成一致? 共识系统: 协商共识制度的两种重要类型是基于投票的协商共识制度和中本聪协商共识制度。 基于投票的共识机制。最经典的基于投票的协商共识机制之一是Paxos机制。Paxos是希腊附近的一个岛屿,议会由提议者、接受者和学习者组成。 基于投票的共识机制的问题是,它们不能与区块链分布式账簿一起工作,因为区块链上的任何用户都可以创建多个帐户,从而使一个用户一票的方案变得毫无用处。这就是中本聪共识机制发挥作用的地方。中本聪共识系统将投票与用户身份以外的量化因素联系在一起。中本聪共识的两个著名的体系是工作量证明和权益证明。 工作量证明: 工作量证明是目前区块链标准的共识系统,并被用于比特币。该系统将投票与计算能力(即一票一cpu)联系起来。该系统假设至少有51%的区块链网络的投票权将诚实投票。工作证明随机选择一个用户对下一组交易(更正式地称为块)进行投票。 权益证明: 权益证明是未来区块链标准的共识系统,并被以太坊使用。这个系统将投票与经济利益挂钩

ML平台_微博深度学习平台架构和实践

断了今生、忘了曾经 提交于 2020-03-30 06:20:21
( 转载至: http://www.36dsj.com/archives/98977 ) 随着人工神经网络算法的成熟、GPU计算能力的提升,深度学习在众多领域都取得了重大突破。本文介绍了微博引入深度学习和搭建深度学习平台的经验,特别是 机器学习工作流、控制中心、深度学习模型训练集群、模型在线预测服务 等核心部分的设计、架构经验。微博深度学习平台极大地提升了深度学习开发效率和业务迭代速度,提高了深度学习模型效果和业务效果。 人工智能和深度学习 人工智能为机器赋予人的智能。随着计算机计算能力越来越强,在重复性劳动和数学计算方面很快超过了人类。然而,一些人类通过直觉可以很快解决的问题,例如自然语言理解、图像识别、语音识别等,长期以来很难通过计算机解决。随着人工神经网络算法的成熟、GPU计算能力的提升,深度学习在这些领域也取得了重大的突破,甚至已经超越人类。深度学习大大拓展了人工智能的领域范围。 深度学习框架 深度学习框架是进行深度学习的工具。 简单来说,一套深度学习框架就是一套积木,各个组件就是某个模型或算法; 开发者通过简单设计和组装就能获得自己的一套方案。深度学习框架的出现降低了深度学习门槛。开发者不需要编写复杂的神经网络代码,只需要根据自己的数据集,使用已有模型通过简单配置训练出参数。 当前主流的深度学习开源框架如下: TensorFlow: 的优势是社区最活跃

【Other】最近在研究的, Java/Springboot/RPC/JPA等

可紊 提交于 2020-03-29 07:13:10
Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) - 好库文摘 User Guide-zh - Dubbo - Alibaba Open Sesame User Guide-zh - Dubbo - Alibaba Open Sesame 简单之美 | Dubbo架构设计详解 DUBBO Hprose RPC框架 java rpc_百度搜索 谁能用通俗的语言解释一下什么是 RPC 框架? - 知乎 Java程序员的现代RPC指南 - 西代零零发 - 博客频道 - CSDN.NET Hprose_百度搜索 Hprose Hprose Home Hprose首页、文档和下载 - 高性能跨语言 RPC - 开源中国社区 项目 - 码云 - 开源中国 hprose/hprose-doc: Hprose 文档汇总 hprose_百度百科 thrift 和 Hprose有什么区别吗?_百度知道 hprose具体用途案例是什么,看到这个东西但是想不出来具体应用实例和优势? - 知乎 Hprose使用经历 - xiang_quan123的专栏 - 博客频道 - CSDN.NET Hprose 2.0.0 for HTML5 发布,高性能跨语言RPC - 开源中国社区 为什么采用hprosehttpclient

详解Session分布式共享(.NET CORE版)

感情迁移 提交于 2020-03-29 00:56:06
一、前言&回顾 在上篇文章 Session分布式共享 = Session + Redis + Nginx 中,好多同学留言问了我好多问题,其中印象深刻的有:nginx挂了怎么办?采用Redis的Session方案与微软Session方案相比,有什么优势呢?Cookie也可以取代Session的,采用Redis的Session方案优势在哪里?Nginx的iphash方式到底是什么?MachineKey有啥用?Net Core怎样实现? 那会儿看到大家的提问,我的回答也只是从应用层面回答,基本上的回答可以总结为:“别人这么做了,解决了这个问题,我用这个方法也解决了这个问题,原理请看链接。”很惭愧的说,那时的我并没有完全理解他真正的优势在哪里,只是凭着直觉和经验知道这样做比较好,知道当一部分东西不可控时候,将其解耦、可视化、集群就可以让一个系统更加健壮,但没有一个理论支撑。经过最近一段时间的查阅资料和阅读书籍,对此有了深刻理解,本文将从网站架构的可用性角度对这种Session共享进行分析和讲解,并用.net core再次实现这种架构模式。(Session分布式共享的net core版,因为工作没有机会应用到生产环境,过往经验就更别提了,所以只是研究性的,请大家注意,但园子里早有大牛写出了相关文章,本文结束会将相关文章贴出) 二、网站可用性--Session管理

全网最全微服务架构—Spring Cloud详解,没有比这更详细的了!

懵懂的女人 提交于 2020-03-26 22:51:24
软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福。 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。 一、背景 2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像 抢红包、双十一这样的活动 不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网 高并发、大流量的性能要求 。系统架构 走向分布式 已经是服务器开发领域解决该问题唯一的出路,然而分布式系统由于天生的复杂度,并不像开发单体应用一样把框架一堆就能搞定,因此各大互联网公司都在投入技术力量研发自己的基础设施。这里面比较有名的如 阿里的开源项目dubbo, Netflix开发的一系列服务框架 。在这种“百花齐放”、重复造轮子的状况下,必然要出现一种统一的标准来简化分布式系统的开发, Spring Cloud 应运而生。 二、Spring Cloud是什么 Spring Cloud是一系列框架的有序集合 。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如 服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控 等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子

JAVA架构师必备词汇和知识点

江枫思渺然 提交于 2020-03-26 08:00:50
01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机制(上线回滚、数据库版本回滚、事务回滚) 02 高并发 应用缓存 HTTP 缓存 多级缓存 分布式缓存 连接池 异步并发 03 分布式事务 二阶段提交(强一致) 三阶段提交(强一致) 消息中间件(最终一致性),推荐阿里的 RocketMQ。 04 队列 任务队列 消息队列 请求队列 05扩容 单体垂直扩容 单体水平扩容 应用拆分 数据库拆分 数据库分库分表 数据异构 分布式任务 06 网络安全 SQL 注入 XSS 攻击 CSRF 攻击 拒绝服务(DoS,Denial of Service)攻击 架构师必备工具 01 操作系统 Linux(必备)、某软的 02 负载均衡 DNS、F5、LVS、Nginx、OpenResty、HAproxy、负载均衡SLB 03 分布式框架 Dubbo、Motan、Spring-Could 04 数据库中间件 DRDS 、Mycat、360 Atlas、Cobar (不维护了) 05 消息队列 RabbitMQ、ZeroMQ、Redis、ActiveMQ、Kafka 06 注册中心 Zookeeper、Redis 07 缓存 Redis、Oscache

分布式锁的实现方式

感情迁移 提交于 2020-03-25 09:15:14
在进行大型网站技术架构设计以及业务实现的过程中,多少都会遇到需要使用分布式锁的情况。那么问题也就接踵而至。分布式锁zk和memcached以及redis三者都能实现,同样是分布式锁,三者的区别何在?各自适用什么场景? 一、Zookeeper 实现原理: 基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站)。大致思想即为:每个客户端对某个功能加锁时,在zookeeper上的与该功能对应的指定节点的目录下,生成一个唯一的瞬时有序节点。判断是否获取锁的方式很简单,只需要判断有序节点中序号最小的一个。当释放锁的时候,只需将这个瞬时节点删除即可。同时,其可以避免服务宕机导致的锁无法释放,而产生的死锁问题。 优点:锁安全性高,zk可持久化,且能实时监听获取锁的客户端状态。一旦客户端宕机,则瞬时节点随之消失,zk因而能第一时间释放锁。这也省去了用分布式缓存实现锁的过程中需要加入超时时间判断的这一逻辑; 缺点:性能开销比较高。因为其需要动态产生、销毁瞬时节点来实现锁功能。所以不太适合直接提供给高并发的场景使用 实现:可以直接采用zookeeper第三方库curator即可方便地实现分布式锁 适用场景: 对可靠性要求非常高,且并发程度不高的场景下使用。如核心数据的定时全量/增量同步等 二、memcached分布式锁 实现原理: memcached带有add函数

金融信创丨神州信息构建分布式“应用+数据库”体系,树金融信创标杆

℡╲_俬逩灬. 提交于 2020-03-24 16:44:51
3 月,跳不动了?>>> 2019年中国人民银行发布《金融科技(FinTech)发展规划(2019-2021年)》,提出要持续加强分布式数据库领域底层和前沿技术研究,有计划、分步骤地稳步推动分布式数据库产品先行先试,形成可借鉴、能推广的典型案例和解决方案,为分布式数据库在金融领域的全面应用探明路径。 ​ 近期,神州信息再次打造分布式“应用+数据库”典型案例,助推金融信创。其为北京某城商行建设的分布式网贷平台与TiDB分布式数据库完成适配并平稳运行,实现授信客户数近千万,日均渠道数据处理超百万笔,账务交易日处理量数十万笔,日批处理量达百万笔,满足其未来五到十年线上网贷业务发展需求。双方基于分布式技术,携手构建了“分布式应用+分布式数据库”的全行级分布式应用体系,推进该行IT系统由“集中”向“分布”转型,为新形势下业务创新夯实基础,保证金融服务行稳致远。至此,继百信银行分布式核心、天津银行分布式核心、吉林亿联分布式核心等项目后,神州信息金融分布式应用系统基本完成与平凯星辰TiDB、华为GaussDB、阿里OceanBase、百度数据库等国内主流分布式数据库的适配,为国内各商业银行结合自身实际选型、落地分布式数据库提供了有力支撑。 ​神州信息金融科技分布式架构专家薛春雨介绍:“神州信息早在2015年启动分布式应用研发,制定了‘先应用、后架构、再存储’的分布式应用路径,助力银行由‘集中式

架构基本概念和架构本质

浪尽此生 提交于 2020-03-22 17:26:59
CSDN看到一篇介绍架构设计的博客,内容提纲挈领,内容丰富。依据原文整理,加上自己的理解和总结。 推荐给大家。点击原文可以查看出处。 原文链接: https://blog.csdn.net/hguisu/article/details/78258430 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个? 想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 区分系统、模块、组件、框架和架构 S君: 区分系统、模块、组件、框架和架构 系统(system)和子系统:有 关联 的个体,根据某种 规则 运行,共同完成独特的 功能 。子系统:系统的组成部分。 模块(module)和组件(component):模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。 从逻辑角度拆分得到的是模块,从物理角度拆分得到的是组件。 模块是为了实现职责分离, 组件是为了实现复用。 框架

架构基本概念和架构本质

可紊 提交于 2020-03-22 17:04:00
3 月,跳不动了?>>> CSDN看到一篇介绍架构设计的博客,内容提纲挈领,内容丰富。依据原文整理,加上自己的理解和总结。 推荐给大家。点击原文可以查看出处。 原文链接: https://blog.csdn.net/hguisu/article/details/78258430 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个? 想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构: 区分系统、模块、组件、框架和架构 S君: 区分系统、模块、组件、框架和架构 系统(system)和子系统:有 关联 的个体,根据某种 规则 运行,共同完成独特的 功能 。子系统:系统的组成部分。 模块(module)和组件(component):模块和组件都是系统的组成部分,只是从不同角度拆分系统而已。 从逻辑角度拆分得到的是模块,从物理角度拆分得到的是组件。 模块是为了实现职责分离, 组件是为了实现复用。 框架