StampedLock,一种比读写锁更快的锁!
01、背景介绍
在上一篇文章中,我们讲到了使用ReadWriteLock可以解决多线程同时读,但只有一个线程能写的问题。
如果继续深入的分析ReadWrite…
浅谈ConcurrentHashMap 线程安全的具体实现方式
01、摘要
在之前的集合文章中,我们了解到 HashMap 在多线程环境下操作可能会导致程序死循环的线上故障!
既然在多线程环境下不能使用 HashMap,那…
真不是我吹,SpringBoot 里这款牛逼的网络工具库,我估计你没用过!
01、背景介绍
现如今的 IT 项目,由服务端向外发起网络请求的场景,基本上处处可见!
传统情况下,在服务端代码里访问 http 服务时,我们一般会使用 JD…
SpringBoot+mail 轻松实现各类邮件自动推送
在实际的项目开发过程中,经常需要用到邮件通知功能。例如,通过邮箱注册,邮箱找回密码,邮箱推送报表等等,实际的应用场景非常的多。
早期的时候,为了能实现邮件的自动…
分页查询接口,从2s优化到了0.01s
前言
最近有小伙伴问了这样一个问题:百万商品分页查询接口,如何保证接口的性能?
这就需要对该分页查询接口做优化了。
这篇文章从9个方面跟大家一起聊聊分页查询接口…
如何保证分库分表后ID的全局唯一性?
我们了解了分布式存储的两个核心问题:数据冗余和数据分片,以及在传统关系型数据库中是如何解决这些问题的。当我们面临高并发的查询数据请求时,可以使用主从读写分离的方…
NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?
在存储服务的优化中,我们通常从两个方面入手:
第一,提升读写性能,特别是读性能。大部分产品都以“读多写少”为主,比如你每天离不开的微信朋友圈、微博、淘宝等,这些…
在成为架构师之前,不妨培养这4点能力
最关键的是定义问题
爱因斯坦曾说过:“提出问题比解决问题更重要。” 这句话揭示了定义问题的重要性。定义问题是脑力活,而解决问题更像是体力活。然而,很多人习惯于看…
用户passport 服务Token:如何降低用户身份鉴权的流量压力?
许多网站在初期阶段通常使用 Session 方式来实现用户登录鉴权。具体而言,当用户成功登录后,服务端会将用户的相关信息存储在 Session 缓存 中,并生成…
如何实现Redis和Mysql中数据双写一致性
在我们的实际开发中,我们用到了redis缓存一些常用的数据(如热点数据)用来提高系统的吞吐量。
但是不可以避免的出现了数据的修改场景,这就导致了数据库中的数据…
高频面试题:Cache Aside机制
Cache Aside机制是一种缓存更新策略,在不需要缓存和数据库强一致性的业务场景下,Cache Aside机制是首选方案。
读策略:
优先从缓存读取数据,…
电商中常见的Mysql与ElasticSearch数据同步的方案
在实际项目开发中,常用Mysql作为业务数据库,ElasticSearch作为查询库。ElasticSearch主要用来应对海量数据的复杂查询,提高查询效率和缓…
巧用注解编程,轻松搞定审计日志服务!
01、背景介绍
任何一个软件系统,都不可避免的会碰到【信息安全】这个词,尤其是对于刚入行的新手,比如我,我刚入行的时候,领导让我做一个数据报表导出功能,我就按…
