高并发系统设计

如何理解高并发系统所谓设计高并发系统,就是设计一个系统,保证它整体可用的同时,能够处理很高的并发用户请求,能够承受很大的流量冲击。 1....

CountDownLatch详解

从源码的角度来分析下它的工作原理1、谁来决定公交车上的座位数?公交车上的座位数是由汽车制造商决定的,在 CountDownLatch 中也会存在这样一个值...

Redis 的大 Key 对持久化有什么影响?

当 AOF 写回策略配置了 Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。 AOF 重写机制和 RDB 快照(bgsave 命令)的过程,都会分别通过 fork() 函数创建一个子进程来处理任务。会有两个阶段会导致阻塞父进程(主线程): 创建子进程的途中,由于要复制父进程的页表等数据结构,阻塞的时间跟页表的大小有关,页表越大,阻塞的时间也越长;创建完子进程后,如果父进程修改了共享数据中的大...

异步编程的 7 种实现方式

1. 线程 (Thread)Java 的 Thread...

异步编程的 7 种实现方式

1. 线程 (Thread)Java 的 Thread...

Spring中还有一招集合注入的写法

Map注入首先来看Map类型的注入,直接在Service中注入一个Map,key为字符串类型,value为上面定义的接口类型。 12

try-catch-finally

结论 return的执行优先级高于finally的执行优先级,但是return语句执行完毕之后并不会马上结束函数,而是将结果保存到栈帧中的局部变量表中,然后继续执行finally块中的语句; 如果finally块中包含return语句,则不会对try块中要返回的值进行保护,而是直接跳到finally语句中执行,并最后在finally语句中返回,返回值是在finally块中改变之后的值;

Consumer 接口

接口的参数进行验签处理

背景需要与第三方对接接口。在对方的接口中存在几个异步通知,为了接口的安全性,需要对接口的参数进行验签处理。为了方便大家对异步通知返回参数的处理,要将该验签功能进行统一封装,到时候大家只需要关注自己的业务逻辑即可。 方案1

利用语法糖用枚举实现“状态”转换限制

状态转换