摘要:
非阻塞网络调用可以使得我们可以不必等待一个操作的完成。 NIO选择器可以使得我们使用较少的线程监听许多连接上的事件,减少了内存管理和cpu上下文切换所带来的开销。 IO多路服用包括selector、poll、epoll、kqueue等 1、select 使用数组保存poll中注册的事件,单个进程能够 阅读全文
摘要:
下面步骤均使用docker desktop工具。 1、下载镜像 下载三个镜像:mysql、canal-server、canal-admin 创建network docker network create --subnet=192.168.1.0/24 canal_network 2、启动mysql服 阅读全文
摘要:
运营反馈用户登录不上微信小程序,提示错误:“获取不到手机号”。 研发接到反馈后根据错误信息,查询日志,发现是调用“微信接口获取手机号接口”异常,没有返回手机号。 1、排查问题 1.1、“微信接口获取手机号接口”需要两个参数,一个是前端微信小程序返回的code,一个是服务端的access_token。 阅读全文
摘要:
MySQL中的InnoDB存储引擎广泛使用了B+树作为索引的数据结构,这是因为它特别适合于磁盘I/O密集型操作,能够高效地处理大量的数据查询。 B+树的基本特性 有序性:B+树的所有叶子节点包含了全部的关键字以及对应的数据记录指针,并且这些叶子节点是按关键字的大小顺序链接在一起的。这使得范围查询和排 阅读全文
摘要:
MySQL的Undo Log(回滚日志)是InnoDB存储引擎中一个核心的组件,它主要有以下两个目的: 确保事务的原子性 支持多版本并发控制(MVCC) 1. 事务的原子性保证 Undo Log记录了数据更改之前的状态。 当一个事务开始修改数据时,InnoDB首先会在Undo Log中记录这些更改的 阅读全文
摘要:
Doublewrite Buffer,即“双重写缓冲”,是MySQL数据库InnoDB存储引擎中一个非常关键的组件,主要用于提高数据的安全性和完整性。 它的设计目的是为了防止在数据库崩溃时由于部分写入操作而导致的数据页损坏。 工作原理 写操作前的缓冲:当数据库需要更新一个数据页时,InnoDB引擎首 阅读全文
摘要:
CGLIB通过动态生成目标类的子类,并利用字节码操作技术在运行时插入代理逻辑,实现了灵活且高效的动态代理机制。这种机制在不依赖接口的情况下也能为任何类添加额外行为,特别适用于需要对现有类进行功能增强的场景。 测试服务 public class DataConverterComponent { pub 阅读全文
摘要:
JDK会在内存中动态生成一个实现了指定接口的代理类的字节码,并通过类加载器加载这个类到JVM中。这个过程包括: 分析目标接口,生成对应的代理类代码。 利用Java反射API创建这个代理类的实例。 将传入的InvocationHandler实例与代理类的实例关联起来。 接口定义 public inte 阅读全文