logo头像
Snippet 博客主题

分库分表技术储备

背景数据库,很容易成为应用系统的瓶颈。单机数据库的资源与处理能力有限,在高并发的分布式服务中,可采取分库分表突破单机局限。其实,在除了少数的公司流量大,大部分用不上分库分表,主从读写分离这样的架构已经可以满足业务的需求了,可是偏偏面试...

高并发下,redis热点KEY的解决方案

背景在高并发系统中,我们将多个KEY数据分片,hash均衡分布在redis集群中,如果遇到活动,或者明星的热点新闻,那这台存有热点的KEY的redis实例,遇到百万的流量,这台机器的网卡也恐怕撑不住了,那么redis基本就瘫痪了,服务...

用协程代替线程,减少上下文切换

背景在开发工作中,遇到一些串行处理比较耗时的任务,我会想到用多线程,切片并行执行,已减少请求响应时间,提高吞吐量。可是,开辟线程也是需要消耗系统内存的,一个线程的线程栈,JVM默认配置1M左右,线程栈的内存的上限 只受操作系统的内存限...

线程池容易被忽略的地方

为什么用线程池? 节约省资源创建线程有损耗,销毁线程也有损耗 执行效率高充分利用多核CPU,并行处理。处理任务,不需要等待线程创建的过程立即执行。 管理线程线程是操作系统稀缺的资源,不可滥用。线程池可以做到统一分配,调优和监控。 线...

Redis incr做接口访问频率的坑

背景在互联网高并发的分布式系统中,我们需要对接口限流,我会用Redis的incr命令,如果是单机的话,用Guava的RateLimiter就可以了。 前置知识INCRBY key increment redis> SET pag...

Redis执行expire命令失败引发的坑

背景在我们做系统开发的时候,遇到高并发的场景,我们对一些数据会直接借助Redis存储,又或者借助Redis实现分布式锁,它带给我们很多的好处,同时我们在使用的时候,会遇到很多的坑,接下来,是我面试的时候遇到的一个问题,我平时一直没意识...

源码阅读利器-UML类图

源码阅读利器-UML类图

预备知识为什么要有类图?类图(Class diagram)主要用于描述系统的结构化设计。类图也是最常用的UML图,用类图可以显示出类、接口以及它们之间的静态结构和关系。 领域UML类图 VS 实现UML类图通常在软件需求分析的时候,产...

如何平滑数据迁移不影响服务的可用性

今天去壹钱包面试,问了一些解决方案,被有道题目难住了。 业务场景 有个用户基础信息表,注册的时候,用户的手机号当前是明文保存在db,用户信息泄露的问题影响是不能容忍的,安全部要求把这个明文手机号改成密文,但是我们号称是24*7小时全...