
分布式系统
不清不慎
热爱编程,热爱生活。
展开
-
分布式系统理解之CAP理论的发展
最近一段时间在研究Zookeeper,深入了解了下分布式系统的发展以及CAP理论的发展,因此写下这篇文章总结一下,由于博主水平有限,如有不足之处可以留言讨论,本文查阅了很多资料,如有侵权请联系博主删除。传统IT系统的要求性能在性能上要求快速响应,支持更多的用户和业务。可用性希望24小时在线服务,并且快速给予用户请求响应,提升用户的使用体验。安全性数据没有丢失,并且保证数据的一致...原创 2018-11-21 17:50:09 · 1205 阅读 · 0 评论 -
分布式一致性协议:Raft算法详解
在分布式系统中,有很多复杂的理论,从CAP理论到BASE理论,我们不断的在可用性以及一致性之间做出抉择,每一部分都相当复杂,就分布式一致性而言,又有许多协议,从2PC到3PC再到paxos算法,到ZAB协议,再到Raft算法。本篇文章主要介绍Raft算法的实现过程,最近有空看了下国外的论文,这里做个简单的总结,本人水平有限,如有问题,欢迎批评指正。在介绍Raft算法之前,你肯定听说过Paxo...原创 2019-05-24 21:37:40 · 14064 阅读 · 2 评论 -
消息队列的作用,高可用,顺序消费的那些事(一)
文章目录:消息队列如何选型,各自的优缺点?如何保证其可用性如何保证消息不丢失?如何保证消息的消费不重复(EOS语义)?如何保证消息的消费的顺序性?如何解决集群故障后大量数据积压?一、消息队列的优缺点我们常常听见一些大佬说学习一个东西不仅要知其然,还要知自其所以然。我们项目中常常用到消息队列,那么为什么我们需要使用消息队列,用了它对系统带来了什么好处了?解决了什么问题,还是是...原创 2019-04-24 23:25:50 · 3685 阅读 · 0 评论 -
高并发场景下缓存数据库不一致性问题
一、缓存与数据库不一致情况在一般的网站的架构中,我们都会采用缓存架构来抗住高并发场景下的读请求。那么对于写请求,先更新缓存还是先更新数据库?本文以商品库存信息为例,我们展开讨论,假设刚开始数据库库存=100,缓存中库存=100.1.先更新数据库,后更新缓存这种情况下,当需要更新库存的时候,先更新数据库中的库存=99,然后再更新缓存=99。但是想象一种场景,由于网络原因,数据库更新成功...原创 2019-04-22 22:56:40 · 4989 阅读 · 1 评论 -
消息队列的作用,高可用,顺序消费的那些事(二)
文章目录:消息队列如何选型,各自的优缺点?如何保证其可用性如何保证消息不丢失?如何保证消息不重复处理(EOS语义)?如何保证消息的消费的顺序性?如何解决集群故障后大量数据积压?继上篇文章【消息队列的作用,高可用,顺序消费的那些事(一)】之后我们讨论了前三个 话题,在这篇文章中我们接着之前遗留下的话题来讨论。一、如何保证消息不重复处理?消息队列我们首先以kafka为例,我们...原创 2019-04-26 23:40:40 · 1251 阅读 · 2 评论 -
浅谈分布式事务的解决方案
一、分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。画外音:提起分布式系统,我们不得不想...原创 2019-04-21 00:21:52 · 624 阅读 · 0 评论 -
浅谈集群负载均衡架构设计
一、常见负载均衡器分类及特点原文地址二、常见负载均衡算法原文地址以上是自己对于集群负载均衡架构的理解以及总结。如有问题,欢迎留言指教。...原创 2019-04-07 21:06:43 · 647 阅读 · 0 评论 -
浅谈分布式唯一ID生成策略
背景场景:一个电商系统的订单业务,在高并发场景下,大量的用户同时访问,那么如何保证ID订单号的唯一性呢?首先我们明确需求,分析一下什么是分布式ID?全局唯一,区别于单点系统的唯一,全局是要求分布式系统内唯一。有序性,通常都需要保证生成的 ID 是有序递增的。例如,在数据库存储等场景中,有序 ID便于确定数据位置,往往更加高效。从上面的场景中我们不由想到线程安全的问题,很多人想到...原创 2019-03-27 18:19:54 · 2389 阅读 · 0 评论 -
Zookeeper选举算法与数据一致性
在前面的两篇文章中了解过了Zookeeper的基本原理使用以及分布式集群的基本CAP定理:Zookeeper探究之基础知识总结分布式系统理解之CAP理论的发展本篇文章我们将深入Zookeeper的核心来探究一下其选举算法以及数据一致性。ZK的选举算法基于Paxos算法,因此,不熟悉该算法的读者可以先阅读上面的文章。ZAB协议Zookeeper内部基于ZAB(Zookeeper Ato...原创 2018-12-27 15:14:14 · 1685 阅读 · 0 评论 -
如何设计一个多级缓存系统?
在一个高并发的分布式系统中,缓存系统是必不可少的一部分,大多数情况下,我们需要设计一个多级缓存系统到生产中使用,那么如何设计呢?这也是笔者在前一段时间的面试中,被问到的一个问题,虽然当时这道题过了,但是面试结束之后对自己的回答不是很满意,所以,再反复思考之后决定分享下自己的设计思路。欢迎留言批评指正。首先我们需要明白,什么是一个多级缓存系统,它有什么用。所谓多级缓存系统,就是指在一个系统 的...原创 2019-05-24 00:29:49 · 3273 阅读 · 0 评论