
架构设计
文章平均质量分 88
inrgihc
这个作者很懒,什么都没留下…
展开
-
Paxos、Raft分布式一致性算法应用场景
一、分布式一致性 (Consensus)分布式一致性问题,简单的说,就是在一个或多个进程提议了一个值应当是什么后,使系统中所有进程对这个值达成一致意见。这样的协定问题在分布式系统中很常用,比如:领导者选举(leader election):进程对leader达成一致; 互斥(mutual exclusion):进程对进入临界区的进程达成一致; 原子广播(atomic broadcast):进程对消息传递(delivery)顺序达成一致。对于这些问题有一些特定的算法,但是,分布式一致性问题试转载 2021-06-10 13:41:35 · 440 阅读 · 0 评论 -
应用网站架构之高并发解决方案
1. 高并发和大流量解决方案(1)高并发架构相关概念并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行;在互联网时代,所讲的并发,高并发通常是指并发访问,也就是在某个时间点,有多少个访问同时到来。通常一个系统的日PV在千万以上,有可能是一个高并发的系统。有的公司完全不走技术路线,全靠机器堆,这不在讨论范围内。 QPS:每秒钟请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求转载 2021-05-11 22:41:41 · 430 阅读 · 0 评论 -
HAProxy简介及其负载均衡场景应用教程
一、HAProxy简介HAProxy是一种免费的、非常快速且可靠的解决方案,它提供了高可用性、负载平衡和对TCP和基于http的应用程序的代理。它特别适用于非常高的流量网站,并为世界上访问量最大的网站提供了强大的力量。多年来,它已经成为事实上的标准的opensource负载平衡器,现在随大多数主流Linux发行版本一起发布,并且经常在云平台上默认部署。代理的作用:web缓存(加速)、反向代理、内容路由(根据流量及内容类型等将请求转发至特定服务器)、转码器(将后端服务器的内容压缩后传输给clien原创 2021-02-08 16:22:57 · 1560 阅读 · 2 评论 -
在分布式系统中的分布式锁三种实现方式
分布式锁三种实现方式:1. 基于数据库实现分布式锁;2. 基于缓存(Redis等)实现分布式锁;3. 基于Zookeeper实现分布式锁;一, 基于数据库实现分布式锁1、悲观锁利用select … where … for update 排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。2、乐观锁所谓乐观锁与前边最大区别转载 2021-01-13 10:28:51 · 843 阅读 · 0 评论 -
基于Redis实现分布式锁(Redisson框架)
一、高效分布式锁在设计分布式锁的时候,应该考虑分布式锁要满足的一些条件:1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。2、防止死锁在分布式高并发的条件下,比如有个线程获得锁的同时,还没有来得及去释放锁,就因为系统故障或者其它原因使它无法执行释放锁的命令,导致其它线程都无法获得锁,造成死锁。所以分布式非常有必要设置锁的有效时间,确保系统出现故障后,在一定时间内能够主动去释放锁,避免造成死锁的情况。3、性能对于访问量大的共享资源,转载 2021-01-10 17:59:48 · 430 阅读 · 0 评论 -
MySQL关系数据库的读写分离的四种方案
一、做读写分离的原因数据库写入效率要低于读取效率,一般系统中数据读取频率高于写入频率,单个数据库实例在写入的时候会影响读取性能,这是做读写分离的原因。二、MySQL读写分离的基础实现方式主要基于mysql的主从复制,通过路由的方式使应用对数据库的写请求只在master上进行,读请求在slave上进行。三、实现读写分离的原理与方案1、基于MySQL proxy代理的方式在应用和数据库之间增加代理层,代理层接收应用对数据库的请求,根据不同请求类型转发到不同的实例,在实现读写分离的同时可以原创 2020-08-29 14:34:54 · 11897 阅读 · 0 评论