服务高可用:幂等性设计详解

什么是幂等性? 一般在服务调用时,读服务如果调用失败了,会自动按配置次数转移到别的服务上去请求。而写服务就不能重复请求,如果因为超时或者网络故障等原因被调用服务并没有返回成功的响应,服务调用方就认为是失败了,但很有可能的是已经成功了,如果...

微服务架构及分布式事务解决方案详解

分布式事务 分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布式事务的最好办法其实就是不考虑分布式事务,将一个大的业务进行...

布隆过滤器的方式解决缓存穿透问题详解

1、原理 布隆过滤器的巨大用处就是,能够迅速判断一个元素是否在一个集合中。因此他有如下三个使用场景: 网页爬虫对URL的去重,避免爬取相同的URL地址 反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃...

高并发秒杀系统总结详解

大家也许开发过高并发的系统或者秒杀程序,但肯定都有接触过,像电商平台的秒杀、抢购等活动,还有12306春运抢票。 活动周期短,瞬间流量大(高并发),技术在这种情况下,会发生和要做的事。 第一:高并发 技术要做的事,一方面优化程序,让程...

缓存在高并发场景下的常见问题详解

当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。 缓存并...

缓存与数据库的数据一致性方案介绍详解

在很多系统中重要数据通常都是写入关系数据库如mysql中,为了实现读写分离,提高系统负载能力,缩短响应时间通常还需要用到缓存。 缓存带来了系统性能的提升同时也把数据一致性问题摆在了开发者面前,在数据库使用读写分离和主从同步的情况下这种一致...

分布式之数据库和缓存双写一致性方案解析详解

为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。...

Linux下搭建禅道项目管理软件详解

第一步,下载禅道 禅道是基于PHP语言开发,所以运行禅道需要LNMP(Linux+Nginx+MySQL+PHP)或LAMP(Linux+Apache+MySQL+PHP)环境。还好禅道本身已经提供了一键集成安装包,不需要自己一步步安装N...

影响可扩展性的十宗罪详解

第一宗:磁盘I/O慢,使用RAID5,使用多租户EBS 磁盘是所有服务器的基础,也是服务器性能性能的基础。虽然主内存变得越来 越大,很多都可以作为缓存使用,但是服务器仍然需要不时从磁盘上读取数...

软件架构风格介绍详解

架构风格是一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。 常见的软件体系结构风格涉及: 设计词汇表是什么?或者构件和连接器的类型是什么?...