摘要:
一、概述 Nginx、OpenRestry、Kong这三个项目紧密相连: Nginx是模块化设计的反向代理软件,C语言开发; OpenResty是以Nginx为核心的Web开发平台,可以解析执行Lua脚本; Kong是一个OpenResty应用,一个api gateway。 OpenResty与Lu 阅读全文
摘要:
Reflector **Reflector 是 MyBatis 反射模块的基础。**要使用反射模块操作一个 Class,都会先将该 Class 封装成一个 Reflector 对象,在 Reflector 中缓存 Class 的元数据信息,这可以提高反射执行的效率。 核心初始化流程 既然是涉及反射操 阅读全文
摘要:
感觉《Mybatis技术内幕》讲的很好,值得大家深入学习一下。 深入 TypeHandler 其实,MyBatis 中的类型转换器就是 TypeHandler 这个接口,其定义如下: public interface TypeHandler<T> { // 在通过PreparedStatement为 阅读全文
摘要:
微服务限流 流量控制简介 流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。在网络传输时,任意时间到来的请求往往是随机不可控的,而系统的处理能力是有的。我们需要根据系统的处理能力对流量进行控制。 熔断降级简介 在调用系统的时候,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生 阅读全文
摘要:
微服务网关 在微服务架构中,随着微服务的拆分,这些微服务不可能同时提供对外服务,这样就需要一个网关系统,承接外网的流量。有了API 网关,各个 API 服务提供团队可以专注自己的业务逻辑处理,而 API 网关则更专注于安全、流量、路由等问题。 我们先来看一下微服务网关主要提供哪些功能。 **统一流量 阅读全文
摘要:
事务四大特性(ACID)原子性、一致性、隔离性、持久性? 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和 阅读全文
摘要:
MySQL为什么使用B+树 索引是帮助MySQL高效获取数据的数据结构。索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序。 B+Tree索引(平衡多路查找树) 是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。数据都在叶子节点上,并且增加 阅读全文
摘要:
1. 应用优化 前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 1.1 使用连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立 数据 阅读全文
摘要:
MySQL的binlog有有几种录入格式?分别有什么区别? 有三种格式,statement, row和mixed。 statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了I0,提高性能。由于sq|的执行是有上下文的,因此在 阅读全文
摘要:
Java 中 3 种常见 IO 模型 BIO (Blocking I/O) BIO 属于同步阻塞 IO 模型 。 同步阻塞 IO 模型中,应用程序发起 read 调用后,会一直阻塞,直到在内核把数据拷贝到用户空间。 在客户端连接数量不高的情况下,是没问题的。但是,当面对十万甚至百万级连接的时候,传统 阅读全文