原创 服务架构 分布式学习七:一致性算法:Paxos算法 Paxos算法世界上只有一种一致性算法,就是 Paxos这个难懂,不写了,附带博客链接:https://www.cnblogs.com/linbingdong/p/6253479.html 2022-03-02 浏览(270) 评论(0) 阅读全文
原创 服务架构 分布式学习六:三阶段提交(3PC) 三阶段提交3PC,是Three-Phase Commit的缩写,即三阶段提交,是2PC的改进版,其将二阶段提 交协议的“提交事务请求”过程一分为二,形成了由CanCommit, PreCommit和do Commit 三个阶段组成的事务处理协议.阶段一:CanCommit1:事务询问:协调者向所有的参与者发送一个包含事务内容的canCommit请求,询问是否可以执行事务提交操作,并开始等待各参与者 2022-03-01 浏览(279) 评论(0) 阅读全文
原创 服务架构 分布式学习五:二阶段提交协议(2PC) 前言在分布式系统中,每个节点都知道自己在事务操作的结果是成功还是失败的,却无法直接获取其他分布式节点的事务结果因此,当一个事务操作需要跨节点时,为了保证事务的ACID特性,就需要引入"协调者(Coordinator)" 的组件来统一调度所有分布式节点的事务处理逻辑,这些被调度的节点称为"参与者(Participant)" 协调者负责调度参与者的行为 2022-02-28 浏览(193) 评论(0) 阅读全文
原创 服务架构 分布式学习四:ACID理论 ACIDACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。原子性一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某 2022-02-28 浏览(260) 评论(0) 阅读全文
原创 服务架构 分布式学习三:BASE理论 BASE理论BASE:全称:Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写它在CAP定理的基础上,让每个业务根据自身的特点,采用适当的方式让整个系统实现 "最终一致性"Basically Available(基本可用)基本可用是,系统的部分服务出现问题后, 2022-02-28 浏览(249) 评论(0) 阅读全文
原创 服务架构 分布式学习二:CAP定理 前言我们通过微服务形式进行实现整个系统,每个服务都可以有副本,相互之间可以通信,并发能力强微服务分布式部署涉及到了3个需求:C(Consistence)一致性 每个服务相互之间的数据存储,需要一致,否则无法同时对外提供服务A(Availability)可用性 每个服务必须一直处于可用的状态P(Network partitioning) 分区容错性&nbs 2022-02-24 浏览(420) 评论(0) 阅读全文
原创 服务架构 分布式学习一:微服务 开篇在微服务之前,所有系统都是为单体架构,例如一个商城系统,包含了:- 用户管理- 商品管理- 订单管理等功能,全部代码都在一块,使用同一个数据库:随着时间的推移,单体服务的问题也逐渐的暴露了出来:1:如果并发大了,只能通过负载均衡方式增加并发,同时数据库只能增加配置2:数据库始终是个瓶颈,所有功能都依赖于同一个数据库,如果数据库出现问题,所有服务都将无法访问3:如果程序出错了,将会导致整个系统无 2022-02-22 浏览(346) 评论(0) 阅读全文
原创 golang go的并发编程 如果了解了GMP模型之后,自然了解go的并发特点,协程之间都可能是多线程并发执行的,通过开协程就可以实现并发:package mainimport ( "fmt" "strconv" "time" 2022-02-21 浏览(357) 评论(0) 阅读全文
原创 前端 js调用网页摄像头进行直播/拍照 前置条件需要https/火狐浏览器网页需要有摄像头创建一个html文件,里面包含2个标签:video 视频播放标签,canvas 图片渲染标签: <video id="video" autoplay style="width: 480px;height: 320px& 2022-02-17 浏览(894) 评论(0) 阅读全文
原创 服务架构 AMQP协议 AMQP协议AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。AMQP模型在AMQP中,定义了4种对象1:Publisher( 2022-02-17 浏览(190) 评论(0) 阅读全文