07 2022 档案
摘要:
消息队列 解耦 A服务和多个服务耦合,内部维护对多个服务发送数据的接口,那么这些接口如果有的挂了,有的不需要了,那么还得修改A内部的代码,如果使用MQ,A发送消息就好,不必考虑那么多事情。 通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了 异步 不需等待整个业
阅读全文

摘要:
HTTP 定义:在两点之间传输文本,视频,图片等超文本数据的协议和规范 来自3.1 HTTP 常见面试题 | 小林coding (xiaolincoding.com) HTTP风险 窃听: 通信使用明文,https通过信息加密(混合加密)解决 对称加密和非对称加密 篡改: 无法验证报文的完整性,ht
阅读全文

摘要:显示字符集编码 mysql架构 逻辑架构 Client :提供连接MySQL服务器功能的常用工具集 Server :MySQL实例,真正提供数据存储和数据处理功能的MySQL服务器进程 mysqld:MySQL服务器守护程序,在后台运行。它管理着客户端请求。mysqld是一个多线程的进程,允许多个会
阅读全文
摘要:
Redis 因为没有指定配置文件 需配置 redis-server redis.windows.conf 之后自动启动 测试性能 redis-benchmark -p 6379 -c 100 -n 10000 基础概念: 清空当前数据库:flushdb 清空全部数据库:flushall redis是
阅读全文

摘要:
JVM 一、什么是JVM 定义 Java Virtual Machine,JAVA程序的运行环境(JAVA二进制字节码的运行环境) 好处 一次编写,到处运行 自动内存管理,垃圾回收机制 数组下标越界检查 比较 JVM JRE JDK的区别 二、内存结构 整体架构 1、程序计数器 作用 用于保存JVM
阅读全文

摘要:1.构造函数 有三种 说第一种无参构造,默认初始容量为10 2.add函数 /** * 将指定的元素追加到此列表的末尾。 */ public boolean add(E e) { //添加元素之前,先调用ensureCapacityInternal方法 ensureCapacityInternal(
阅读全文
摘要:InnoDB存储引擎在 RR 级别下通过 MVCC和 Next-key Lock 来解决幻读问题: 1、执行普通 select,此时会以 MVCC 快照读的方式读取数据 在快照读的情况下,RR 隔离级别只会在事务开启后的第一次查询生成 Read View ,并使用至事务提交。所以在生成 Read V
阅读全文
摘要:
查找结构的进化 二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,每次为了查找对比计算,需要把数据加载到内存以及 CPU 高速缓存中时,都要把索引数据和无关的业务数据全部
阅读全文

摘要:
背景: 全链路异步: 应用层:编程模型的异步:响应式编程 框架层:IO线程的异步:一个IO线程只能处理一个请求 》一个IO线程只能处理多个请求,经典模型:reactor模型 将Reactor分为两部分mainReactor和subReactor mainReactor负责处理新的连接事件,将后续的事
阅读全文

摘要:
@SpringBootApplication SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动springBoot的应用 2. 核心注解为@EnableAutoConfiguration,开启自动配置功能 3.
阅读全文

摘要:
设计协议 相对于 HTTP 的用处,RPC 更多的是负责应用间的通信,所以性能要求相对更高。但 HTTP 协议的数据包大小相对请求数据本身要大很多,又需要加入很多无用的内容,比如换行符号、回车符等; 还有一个更重要的原因是,HTTP 协议属于无状态协议,客户端无法对请求和响应进行关联,每次请求都需要
阅读全文

摘要:
参数过长 影响: 方法不易被理解、使用,方法签名容易不稳定,不易维护 解决方法:反复使用提炼方法+内联方法,消除多余参数 尽量把方法移进相关的类中 如实体类中的get方法在其他类中没有被调用可以删除 实际工作中,可以结合参数数量、以及自身对业务的理解,在 最小知道 和 保持对象完整性 之
阅读全文

摘要:JVM线程属于用户态还是内核态 当进程运行在ring3级别时为用户态,ring0级别时为内核态 有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况: 系统调用:操作系统封装内核指令,统一管理硬件资源,然后向用户程序提供系统服务,用户程序进行系统调用,操作系统进行检查确保安全然后再进
阅读全文