架构设计
-
布隆过滤器的方式解决缓存穿透问题详解架构师
1、原理 布隆过滤器的巨大用处就是,能够迅速判断一个元素是否在一个集合中。因此他有如下三个使用场景: 网页爬虫对URL的去重,避免爬取相同的URL地址 反垃圾邮件,从数十亿个垃圾邮…
-
Spring Cloud Eureka自我保护机制(服务无法剔除)详解架构师
说明 自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。 默认情况下,如…
-
缓存穿透,缓存击穿,缓存雪崩解决方案分析详解架构师
前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑…
-
高并发秒杀系统总结详解架构师
大家也许开发过高并发的系统或者秒杀程序,但肯定都有接触过,像电商平台的秒杀、抢购等活动,还有12306春运抢票。 活动周期短,瞬间流量大(高并发),技术在这种情况下,会发生和要做的…
-
缓存在高并发场景下的常见问题详解架构师
当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生…
-
缓存与数据库的数据一致性方案介绍详解架构师
在很多系统中重要数据通常都是写入关系数据库如mysql中,为了实现读写分离,提高系统负载能力,缩短响应时间通常还需要用到缓存。 缓存带来了系统性能的提升同时也把数据一致性问题摆在了…
-
分布式之数据库和缓存双写一致性方案解析详解架构师
为什么写这篇文章? 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。 但是在更新缓存方面,对于更新完数…
-
Linux下搭建禅道项目管理软件详解架构师
第一步,下载禅道 禅道是基于PHP语言开发,所以运行禅道需要LNMP(Linux+Nginx+MySQL+PHP)或LAMP(Linux+Apache+MySQL+PHP)环境。还…
-
影响可扩展性的十宗罪详解架构师
第一宗:磁盘I/O慢,使用RAID5,使用多租户EBS 磁盘是所有服务器的基础,也是服务器性能性能的基础。虽然主内存变得越来 越大,很多都可以作为缓存使用,但是服务器仍然需要不时从…
-
软件架构风格介绍详解架构师
架构风格是一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。 常见的软件体系结构风格涉及: …