分布式理论和架构设计
分布式理论相关内容
IT 小松
每个强者都会有背后的心酸苦涩。
展开
-
分布式理论、架构设计学习:Netty
1. Netty认识Netty 是由 JBOSS 提供一个异步的、 基于事件驱动的网络编程框架。Netty 可以帮助你快速、 简单的开发出一 个网络应用, 相当于简化和流程化了 NIO 的开发过程。 作为当前最流行的 NIO 框架, Netty 在互联网领域、 大数据分布式计算领域、 游戏行业、 通信行业等获得了广泛的应用, 知名的 Elasticsearch 、 Dubbo 框架内部都采用了 Netty。1.1 为什么使用NettyNIO缺点NIO 的类库和 API 繁杂,使用麻烦。你需要熟原创 2020-10-21 15:13:46 · 161 阅读 · 0 评论 -
分布式理论、架构设计学习:BIO、NIO、AIO
1. 同步和异步同步(synchronize)、异步(asychronize)是指应用程序和内核的交互而言的同步指用户进程触发IO操作等待或者轮训的方式查看IO操作是否就绪。同步举例:银行取钱,我自己去取钱,取钱的过程中等待异步当一个异步进程调用发出之后,调用者不会立刻得到结果。而是在调用发出之后,被调用者通过状态、通知来通知调用者,或者通过回调函数来处理这个调用。说明: 使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS,OS需要支持异步IO操作原创 2020-10-21 13:48:49 · 212 阅读 · 0 评论 -
分布式理论、架构设计学习:RMI
1. 简介Java RMI 指的是远程方法调用 (Remote Method Invocation),是java原生支持的远程调用,采用JRMP(Java Remote Messageing protocol)作为通信协议,可以认为是纯java版本的分布式远程调用解决方案, RMI主要用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上,这里的通信可以理解为一个虚拟机上的对象调用另一个虚拟机上对象的方法。1.1 客户端存根/桩(Stub):远程对象在客户端上的代理;远程引用原创 2020-10-21 10:51:09 · 126 阅读 · 0 评论 -
分布式理论、架构设计学习:分布式架构网络通信基本原理及RPC
1. 基本原理要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。2. RPC介绍RPC全称为remot原创 2020-10-21 00:51:51 · 258 阅读 · 0 评论 -
分布式理论、架构设计学习:分布式系统设计策略
1. 心跳检测在分布式环境中,我们提及过存在非常多的节点(Node),其实质是这些节点分担任务的运行、计算或者程序逻辑处理。那么就有一个非常重要的问题,如何检测一个节点出现了故障乃至无法工作了?通常解决这一问题是采用心跳检测的手段,如同通过仪器对病人进行一些检测诊断一样。心跳顾名思义,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为一个节点和现在的网络拓扑是良好的。当然,心跳汇报时,一般也会携带一些附加的状态、元数据信息,以便管理如图所示,Client请求Server,Ser原创 2020-10-21 08:03:03 · 353 阅读 · 2 评论 -
分布式理论、架构设计学习:一致性协议 3PC
1. 三阶段提交介绍3PC,全称 “three phase commit”,是 2PC 的改进版,将 2PC 的 “提交事务请求” 过程一分为二,共形成了由CanCommit、PreCommit和doCommit三个阶段组成的事务处理协议。2. 阶段一 :CanCommit事务询问协调者向所有的参与者发送一个包含事务内容的canCommit请求,询问是否可以执行事务提交操作,并开始等待各参与者的响应。各参与者向协调者反馈事务询问的响应参与者在接收到来自协调者的包含了事务内容的canCommi原创 2020-10-20 23:51:52 · 187 阅读 · 0 评论 -
分布式理论、架构设计学习:一致性协议 2PC
1. 事务的基本特性Atomicity(原子性):是说事务是一个不可分割的整体,所有操作要么全做,要么全不做;只要事务中有一个操作出错,回滚到事务开始前的状态的话,那么之前已经执行的所有操作都是无效的,都应该回滚到开始前的状态。Consistency(一致性):是说事务执行前后,数据从一个状态到另一个状态必须是一致的,比如A向B转账(A、 B的总金额就是一个一致性状态),不可能出现A扣了钱,B却没收到的情况发生。Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰。关于事务的隔离性原创 2020-10-20 23:23:15 · 121 阅读 · 0 评论 -
分布式理论、架构设计学习:BASE 理论
1. 介绍BASE:全称 Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写,来自 ebay 的架构师提出。BASE是对CAP中一致性和可用性权衡的结果,BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。2. Basically Available(基本可用)基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性原创 2020-10-15 14:29:30 · 298 阅读 · 1 评论 -
分布式理论、架构设计学习:CAP定理
1. 介绍2000 年7月的时候,加州大学伯克利分校的Eric Brewer 教授提出了 CAP 猜想,2年后,被 来自于麻省理工的Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的可能性,从此,CAP 定理正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。CAP 理论含义是,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A: Availability)和分区容错性(P:Partition tolerance)这三个基本需原创 2020-10-15 14:16:40 · 177 阅读 · 0 评论 -
分布式理论、架构设计学习:一致性
1. 分布式一致性概念分布式数据一致性,指的是数据在多份副本中存储时,各副本中的数据是一致的。2. 副本一致性分布式系统当中,数据往往会有多个副本。如果是一台数据库处理所有的数据请求,那么通过ACID四原则,基本可以保证数据的一致性。而多个副本就需要保证数据会有多份拷贝。这就带来了同步的问题,因为我们几乎没有办法保证可以同时更新所有机器当中的包括备份所有数据。 网络延迟,即使我在同一时间给所有机器发送了更新数据的请求,也不能保证这些请求被响应的时间保持一致存在时间差,就会存在某些机器之间的数据不一致的原创 2020-10-15 10:52:17 · 166 阅读 · 0 评论 -
分布式理论、架构设计学习:分布式架构系统介绍
1. 分布式系统概念分布式系统是一个硬件或软件的组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。2. 分布式与集群的区别集群:多个人在一起作同样的事分布式 :多个人在一起作不同的事分布式系统的特点:分布性对等性并发性缺乏全局时钟故障总是会发生3. 分布式系统的发展阿里巴巴发起的"去 IOE"运动 (IOE 指的是 IBM 小型机、Oracle 数据库、EMC 的高端存储)。阿里巴巴2009 年“去IOE”战略技术总监透露,截止到 2013原创 2020-10-15 09:44:18 · 205 阅读 · 0 评论