
分布式
文章平均质量分 85
一点一滴g
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RPC原理解析
什么是RPC?RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序之间携带信息数据。RPC将原来的本地调用转变为调用远端的服务器上的方法,给系统的处理能力和吞吐量带来了近似于无限制提升的可能。在OSI网络通信模型中...原创 2019-04-17 17:11:55 · 172 阅读 · 0 评论 -
浅析分布式系统 4---负载均衡原理剖析
开头先理解一下所谓的“均衡”。不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要过载,并且能够最大程序地发挥作用。一、http重定向当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Locat...转载 2019-05-31 20:14:59 · 162 阅读 · 0 评论 -
分布式系统之Paxos变种和优化
转自 https://www.cnblogs.com/bangerlee/p/6189646.htmlMulti Paxos首先我们来回顾一下Multi Paxos,Multi Paxos在Basic Paxos的基础上确定一系列值,其决议过程如下:phase1a: leader提交提议给acceptorphase1b: acceptor返回最近一次接受的提议(即曾接受的最大的...转载 2019-05-29 19:16:10 · 430 阅读 · 0 评论 -
浅析分布式系统1---架构及常用方案
我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ、微信、淘宝。那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念。承载量是分布式系统存在的原因当一个互联网业务获得大众欢迎的时候,最显著碰到的技术问题,就是服务器非常繁忙。当每天有1000万个用户访问你的网站时,无...转载 2019-05-29 19:50:02 · 494 阅读 · 0 评论 -
浅析分布式系统5---Nginx负载均衡与反向代理
原创: 张开涛 开涛的博客 2017-03-24当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台、几十台、几百台。然而,用户访问时是通过如的方式访问,在请求时,浏览器首先会查询DNS服务器获取对应的IP,然后通过此IP访问对应的服务。因此,一种方式是域名映射多个IP,但是,存在一个最简单的问题,假设某台服务器重启或者出现故障,DNS会有一定的缓存时间,故障后切换...转载 2019-06-02 20:18:37 · 161 阅读 · 0 评论 -
浅析分布式系统6---session一致性架构设计
什么是session?由于HTTP协议是无状态的协议,因此它不会去记住上一次浏览器访问服务器时的信息。同一个用户的两次操作,与两个不同用户的操作,对它来说是一样的。 这样虽然满足了互联网web应用的海量访问的需求,但是对于现今类似电商的应用来说,是需要实现登录以及身份验证需求的,但是无状态的HTTP显然是做不到的,这样才出现了session。Web服务器为每个用户创建一个会话,存储用户的相关信...原创 2019-06-02 20:55:46 · 154 阅读 · 0 评论 -
浅析分布式系统9---缓存更新
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻辑...转载 2019-06-09 19:05:21 · 416 阅读 · 0 评论 -
浅析分布式系统7---分布式ID生成方案
在了解分布式ID生成之前,先聊聊为什么要实现分布式ID。众所周知,几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如:消息标识:message-id订单标识:order-id帖子标识:tiezi-id这个记录标识往往就是数据库中的主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。这个记录标识上的查询,往往又有分页或者排序的业...原创 2019-06-03 16:57:31 · 165 阅读 · 0 评论 -
浅析分布式系统10---分布式锁的实现
分布式一致性问题首先我们先来看一个小例子:假设某商城有一个商品库存剩10个,用户A想要买6个,用户B想要买5个,在理想状态下,用户A先买走了6了,库存减少6个还剩4个,此时用户B应该无法购买5个,给出数量不足的提示;而在真实情况下,用户A和B同时获取到商品剩10个,A买走6个,在A更新库存之前,B又买走了5个,此时B更新库存,商品还剩5个,这就是典型的电商“秒杀”活动。从上述例子不难看出,在...转载 2019-06-09 22:58:42 · 140 阅读 · 0 评论 -
浅析分布式系统11---分布式事务常用解决方案
分布式事务的解决方案分布式事务的解决方案有如下几种:全局消息基于可靠消息服务的分布式事务TCC最大努力通知方案1:全局事务(DTP模型)全局事务基于DTP模型实现。DTP是由X/Open组织提出的一种分布式事务模型——X/Open Distributed Transaction Processing Reference Model。它规定了要实现分布式事务,需要三种角色:...转载 2019-06-16 20:50:28 · 133 阅读 · 0 评论 -
浅析分布式系统3---Zookeeper的配置与集群管理实战
配置文件ZooKeeper安装好之后,在安装目录的conf文件夹下可以找到一个名为“zoo_sample.cfg”的文件,是ZooKeeper配置文件的模板。ZooKeeper启动时,会默认加载“conf/zoo.cfg”作为配置文件,所以需要将“zoo_sample.cfg”复制一份,命名为“zoo.cfg”,然后根据需要设定里面的配置项。配置项很简单,说明如下:tickTime=200...转载 2019-05-31 20:01:45 · 240 阅读 · 0 评论 -
浅析分布式系统8---缓存
简介什么是缓存?缓存是“存贮数据(使用频繁的数据)的临时地方,因为取原始数据的代价太大了,所以我可以取得快一些。”缓存可以认为是数据的池,这些数据是从数据库里的真实数据复制出来的,并且为了能正确取回,被标上了标签(键 ID)。命中:当客户发起一个请求(我们说他想要查看一个产品信息),我们的应用接受这个请求,并且如果是在第一次检查缓存的时候,需要去数据库读取产品信息。如果在缓存中,一个...转载 2019-06-05 11:17:12 · 225 阅读 · 0 评论 -
分布式系统理论之一致性、2PC、3PC
分布式系统的特性分布性:分布式系统中的多台计算机之间在空间位置上可以随意分布,系统中的多台计算机之间没有主、从之分,即没有控制整个系统的主机,也没有受控的从机。透明性:系统资源被所有计算机共享。每台计算机的用户不仅可以使用本机的资源,还可以使用本分布式系统中其他计算机的资源(包括CPU、文件、打印机等)。同一性:系统中的若干台计算机可以互相协作来完成一个共同的任务,或者说一个程序可以分布在...原创 2019-04-17 17:48:05 · 286 阅读 · 0 评论 -
分布式系统之CAP、BASE、ACID详解
ACIDACID,是指在数据库管理系统(DBMS)中,事务(transaction)所具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。在数据库系统中,一个事务是指:由一系列数据库操作组成的一个完整的逻辑过程。例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和,构...原创 2019-04-18 15:41:21 · 426 阅读 · 0 评论 -
分布式系统之Paxos算法
什么是Paxos算法Paxos 算法是 基于消息传递 且具有 高效容错特性 的一致性算法,目前公认的解决 分布式一致性问题最有效的算法之一.(要剖析啊,头疼)背景:在常见的 分布式系统 中,总会发生 节点宕机 或 网络异常 (包括消息的 重复、丢失、延迟、乱序、网络分区) 等情况,Paxos 算法主要就是解决如何在一个 发生如上故障 的分布式系统中,快速正确的在集群内对某个值达成一致,并且保...原创 2019-04-18 19:51:44 · 439 阅读 · 0 评论 -
分布式系统之选举、多数派和租约
选举(election)是分布式系统实践中常见的问题,通过打破节点间的对等关系,选得的leader(或叫master、coordinator)有助于实现事务原子性、提升决议效率。 多数派(quorum)的思路帮助我们在网络分化的情况下达成决议一致性,在leader选举的场景下帮助我们选出唯一leader。租约(lease)在一定期限内给予节点特定权利,也可以用于实现leader选举。选举(ele...转载 2019-04-19 14:25:26 · 222 阅读 · 0 评论 -
分布式系统中的时间、时钟和事件顺序
和我们日常生活中的记录事件先后顺序一样,分布式系统的一些场景也需要记录和比较不同节点间事件发生的顺序,但不同于日常生活使用物理时钟记录时间,分布式系统使用逻辑时钟记录事件顺序关系。那为什么分布式系统不采用物理时钟记录事件呢?因为现实生活中物理时间有统一的标准,而分布式系统中每个节点记录的时间并不一样,即使设置了 NTP 时间同步节点间也存在毫秒级别的偏差。因而分布式系统需要有另外的方法记录事件顺...转载 2019-04-19 16:15:11 · 1600 阅读 · 0 评论 -
分布式系统之Raft、Zab算法
RaftRaft将问题分解和具体化:Leader统一处理变更操作请求,一致性协议的作用具化为保证节点间操作日志副本(log replication)一致,以term作为逻辑时钟(logical clock)保证时序,节点运行相同状态机(state machine)得到一致结果。Raft协议具体过程如下:Client发起请求,每一条请求包含操作指令请求交由Leader处理,Leader将操...原创 2019-04-19 19:24:50 · 1519 阅读 · 0 评论 -
初步认识分布式和集群
基本概念分布式就是不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。集群简单理解就是把单机复制几分,一起组成的就是集群。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。每个节点都提供相同的服务,那么这样系统的处理能力就相当于提升了好几倍。初识NGINX首先对NGINX有一个初步的了解,它是基于C语言开发的一款...原创 2018-11-19 14:34:27 · 300 阅读 · 0 评论 -
Tomcat分布式集群
专业术语集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服...原创 2018-11-19 14:35:35 · 2442 阅读 · 0 评论 -
浅析分布式系统2---ZAB协议概述与选主流程详解
ZAB协议ZAB协议是专门为zookeeper实现分布式协调功能而设计。zookeeper主要是根据ZAB协议是实现分布式系统数据一致性。zookeeper根据ZAB协议建立了主备模型完成zookeeper集群中数据的同步。这里所说的主备系统架构模型是指,在zookeeper集群中,只有一台leader负责处理外部客户端的事物请求(或写操作),然后leader服务器将客户端的写操作数据同步到...转载 2019-05-30 21:04:38 · 238 阅读 · 0 评论 -
浅析分布式系统12---秒杀系统架构设计与优化
先简单聊一下常见的秒杀案例比如说京东秒杀,就是一种定时定量秒杀,在规定的时间内,无论商品是否秒杀完毕,该场次的秒杀活动都会结束。这种秒杀,对时间不是特别严格,只要下手快点,秒中的概率还是比较大的。淘宝以前就做过一元抢购,一般都是限量 1 件商品,同时价格低到「令人发齿」,这种秒杀一般都在开始时间 1 到 3 秒内就已经抢光了,参与这个秒杀一般都是看运气的,不必太强求业务特点瞬时并发量大...转载 2019-06-17 22:50:08 · 189 阅读 · 0 评论