原创 服务架构

分布式学习六:三阶段提交(3PC)

三阶段提交3PC,是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其将二阶段提 交协议的“提交事务请求”过程一分为二,形成了由CanCommit, PreCommit和do Commit 三个阶段组成的事务处理协议.阶段一:CanCommit1:事务询问:协调者向所有的参与者发送一个包含事务内容的canCommit请求,询问是否可以执行事务提交操作,并开始等待各参与者
阅读全文
原创 服务架构

分布式学习五:二阶段提交协议(2PC)

前言在分布式系统中,每个节点都知道自己在事务操作的结果是成功还是失败的,却无法直接获取其他分布式节点的事务结果因此,当一个事务操作需要跨节点时,为了保证事务的ACID特性,就需要引入"协调者(Coordinator)" 的组件来统一调度所有分布式节点的事务处理逻辑,这些被调度的节点称为"参与者(Participant)" 协调者负责调度参与者的行为
阅读全文
原创 服务架构

分布式学习四:ACID理论

ACIDACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。原子性一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某
阅读全文
原创 服务架构

分布式学习三:BASE理论

BASE理论BASE:全称:Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写它在CAP定理的基础上,让每个业务根据自身的特点,采用适当的方式让整个系统实现  "最终一致性"Basically Available(基本可用)基本可用是,系统的部分服务出现问题后,
阅读全文
分布式学习二:CAP定理
原创 服务架构

分布式学习二:CAP定理

前言我们通过微服务形式进行实现整个系统,每个服务都可以有副本,相互之间可以通信,并发能力强微服务分布式部署涉及到了3个需求:C(Consistence)一致性   每个服务相互之间的数据存储,需要一致,否则无法同时对外提供服务A(Availability)可用性 每个服务必须一直处于可用的状态P(Network partitioning) 分区容错性&nbs
阅读全文
分布式学习一:微服务
原创 服务架构

分布式学习一:微服务

开篇在微服务之前,所有系统都是为单体架构,例如一个商城系统,包含了:- 用户管理- 商品管理- 订单管理等功能,全部代码都在一块,使用同一个数据库:随着时间的推移,单体服务的问题也逐渐的暴露了出来:1:如果并发大了,只能通过负载均衡方式增加并发,同时数据库只能增加配置2:数据库始终是个瓶颈,所有功能都依赖于同一个数据库,如果数据库出现问题,所有服务都将无法访问3:如果程序出错了,将会导致整个系统无
阅读全文
go的并发编程
原创 golang

go的并发编程

如果了解了GMP模型之后,自然了解go的并发特点,协程之间都可能是多线程并发执行的,通过开协程就可以实现并发:package mainimport (   "fmt"   "strconv"   "time"
阅读全文
原创 服务架构

AMQP协议

AMQP协议AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。AMQP模型在AMQP中,定义了4种对象1:Publisher(
阅读全文
本文目录
    Loading...