摘要:
记一次Redis超时 关键字:#spring-data-redis、#RedisTemplate、#Pipeline、#Lettuce spring-data-redis:2.6.3 1 现象 时间轴(已脱敏) day01 线上发现接口耗时不正常变高 day02 其他接口mget操作偶现超时,陆续发 阅读全文
摘要:
关键字:#SpringCloud、#header、#MultiValueMap、#鉴权 1 问题背景 安全团队反馈:直接给header的real_user_id字段传其他用户的user_id,即可绕过鉴权,达到类似劫持cookie的效果。 从网关鉴权开始排查。 2 网关鉴权流程 网关层鉴权结果写入h 阅读全文
摘要:
开不了口 对业务一无所知的时候,最忌讳的大概就是闷头自己啃代码了。 一段匪夷所思的代码,从Java底层到框架API全都研究透了,可能还是不知道它是干嘛的,不如问问作者,两分钟搞懂,不必去纠结他的实现细节。 尴尬的是,有时候作者也不知道这是干嘛的,时间久远,文档不全... 最要命的是作者已经离职了.. 阅读全文
摘要:
初来乍到 入职第一天,领了本破烂ThinkPad(和自己的同模具..),战战兢兢,对着新人文档从jdk1.8开始配置环境。 打开项目满目飘红,依赖下不来,找公司的老同志要了份公司内部的maven配置文件,解决。 花了一会儿功夫理解了DEV、QA和PRD的区别,被告知可以在DEV随便乱搞(bushi) 阅读全文
摘要:
1 Lambda表达式 Java8 新特性 1.1 从匿名内部类到Lambda **匿名内部类的作用:**当一个内部类只需为其创建一次对象,且以后也不会再被用到,就可以使用匿名内部类简化代码编写。 **例子:**创建线程。 new Thread(new Runnable() { @Override 阅读全文
摘要:
套接字类型与协议设置 创建套接字 #include <sys/socket.h> /* 成功时返回文件描述符,失败时返回-1 */ int socket(int domain, int type, int protocol); 协议族(Protocol Family) **PF_INET:**IPV 阅读全文
摘要:
协议的内容 消息的类型 请求消息 响应消息 消息的语法/格式 消息中有哪些字段 字段如何描述 字段的语义 规则 进程应该什么时候,怎样发送消息 HTTP连接的两种类型 非持久性连接 HTTP 1.0 持久性连接 HTTP 1.1 无流水:客户端收到前一个响应之后才发送新的请求,每个对象使用1RTT 阅读全文
摘要:
MySQL - B-Tree索引 InnoDB使用B+Tree实现其索引。 关于B-Tree 1B-Tree索引 数据库中B+Tree的高度一般在2-4之间,即查找某一键值的行记录时最多进行2-4次IO。 InnoDB存储引擎中页的大小为16KB,一般表的主键类型为INT(占用4个字节)或BIGIN 阅读全文
摘要:
1多路平衡查找 1.1分级存储 计算机的二级存储系统:内存和外存 内存容量小速度快,外存容量大速度慢。 减少I/O:内存与外存的访问速度相差悬殊,故应该尽可能地减少不同存储级别之间地数据传输。 外存的特性:读取物理地址连续的一千个字节,与读取单个字节花费的时间几乎没有区别。 所以,系统从磁盘读取数据 阅读全文
摘要:
1MySQL架构与历史 1.1MySQL逻辑架构 1.1.1连接管理与安全性 **每个客户端连接都会在服务器进程中拥有一个线程。**这个连接的查询只会在这个单独的线程中执行。 服务器会负责缓存线程,因此不需要为每个新建的连接创建或销毁线程。 **线程池(Thread-Pooling):**可使用池中 阅读全文