响应式架构
问题传统架构
线程池预先创建大量线程,一个请求绑定一个线程
一般一个线程需要1M左右的内存
且线程切换需要耗时
所以,内存开销与时间开销会随着线程量而增大
大量资源开销在线程的管理上
异步调用
发生阻塞后告诉系统,让当前线程先做别的事情,阻塞结束再提醒系统
Callback
回调地狱
响应式编程
发布和订阅
backpressure 背压
控制流速,避免大量数据的接受
协商
订阅者通过自己的能力来通知发布方的通知数量
一些知识函数式接口可有多个重载
使用lambda表达式时可指定参数类型来判断使用哪个方法
常用函数式接口
supplier 0输入,1输出
consumer 1输入, 0输出
function 1输入,1输出
unaryOperator 同类型的1输入1输出
BiFunction 2输入,1输出
流编程注意中间操作是不会执行的, 只是一个声明, 一个流编程必须有一个终止操作才会执行
且在流编程中,终止操作只能有一个, 中间操作0-n个
Project Reactorpublisherflux发布0-n个对象
创建方式
1234567Flux.just(1,2,3,4, ...
Linux
常用快捷键
按键
作用
ctrl+d
键盘输入结束或退出终端
ctrl+s
暂停当前程序
ctrl+z
当前程序放到后台运行,恢复到前台为fg
ctrl+a
将光标移到行头,相当于home
ctrl+e
相当于end
ctrl+k
删除从光标到行末的内容
alt+Backspace
删除一个单词(不是字母)
shift+PgUp
终端向上
shift+PgDn
终端向下
Shell中常用的通配符
字符
含义
*
匹配0或多个字符
?
匹配任意一个字符
[list]
匹配list中任意单一字符
[^list]
匹配list之外的字符
[c1-c2]
匹配c1到c2中任意单一字符如 [0-9]
{s1,s2,……}
匹配其中一个字符串
{c1..c2}
匹配全部字符
Linux的目录结构
/bin
Binary的缩写,存放着最经常使用的命令
/sbin
super bin, 存放系统管理员使用的系统管理程序
/home
存放普通用户的主目录,其中每个linux用户都有自己的 ...