发布了文章5 月 11 日
持久化层和缓存层的一致性问题也通常被称为「双写一致性问题」,“双写”意为数据既在数据库中保存一份,也在缓存中保存一份。对于一致性来说,包含强一致性和弱一致性,强一致性保证写入后立即可以读取,弱一致性则不保证立即可以读取写入后的值,而是尽可能的保证在...
发布了文章5 月 2 日
引言生产环境出现慢 SQL 的危害呢?吞吐量下降,延时变大。长时间占用连接池,导致客户端和 MySQL 吞吐量下降,客户端迟迟等不到响应结果风险扩散。慢 SQL 将导致 CPU 飙升,影响其它所有 SQL 的执行性能而很多时候解决线上慢 SQL 并不是一个 EXPLAIN 就能解决的。本...
发布了文章4 月 19 日
当内存泄漏达到一定程度,就会导致 OOM,这是常见的导致 OOM 的原因之一。除此之外,还有哪些常见的 OOM 原因呢?线上真出现了 OOM 问题,又该如何快速止血和解决呢?
发布了文章2 月 23 日
引言可能因为今天出现热点,导致了 MQ 出现「消息堆积」,下游需要几天才能把消息消费完。为了避免这种情况,我们需要解决以下问题:如何知道 MQ 出现了「消息堆积」?如何定位并处理「消息堆积」问题?如何避免「消息堆积」问题?本文以 RocketMQ 为例解决消息堆积...
发布了文章2 月 18 日
引言或许你曾写过这样的代码: {代码...} 在一个事务内,向 MySQL 写入数据,接下来发送 MQ 或 RPC 调用。在大部分情况下,这样写好像没什么问题但如果此时我们下游执行反查操作,会发现找不到数据。更奇怪的是,这在业务的低谷期才会出现,而在高峰期反而不会出现?...
发布了文章2 月 12 日
网络层:TCP 协议的 connect timeout(Linux 默认 120 秒)、HTTP 请求的 socket timeout(如 Java HttpClient 默认 30 秒)
发布了文章2 月 5 日
电商平台的订单、金融交易流水、用户行为的记录,使用传统的单条 INSERT 语句逐行插入方式,在处理 1 万条数据时往往需要数秒,这不仅会导致事务锁竞争加剧,更可能引发连接超时等系统性风险
发布了文章2 月 2 日
许多开发者都曾面对过这样一个的问题:明明分别调用两次send()发送了"Hello"和"World",接收方却可能在一个recv()调用中读到完整的"HelloWorld";或是发送了一个完整的 JSON 对象,接收端却需要多次读取才能拼凑出完整数据。这种现象...
发布了文章2 月 2 日
-XX 后面的参数是 JVM 的内部参数,通常用于调优或控制一些更底层的细节。它们不是标准 Java 选项,因此有些选项可能在不同版本的 JVM 中有差异
发布了文章2 月 2 日
Redis 热 key 问题是指单位时间内,某个特定 key 的访问量特别高,导致某个 Redis 节点承载了绝大部分流量,而其他 Redis 节点却处于”空闲“状态。极短的流量倾斜问题就可能会将某个 Redis 节点打挂。从数据层角度看,Redis 集群某个分片的数据缺失,导致缓存雪崩。从...
发布了文章1 月 27 日
跨域是什么?跨域问题是浏览器的安全机制,即同源策略(Same-origin policy)限制不同源之间的交互,从而保证资源的安全同源策略限制内容Cookie、LocalStorage、IndexedDB 等存储性内容只有同源才能访问AJAX 请求发送后,响应内容被浏览器拦截了DOM允许跨域加载的资...
发布了文章1 月 27 日
跨域是什么?跨域问题是浏览器的安全机制,即同源策略(Same-origin policy)限制不同源之间的交互,从而保证资源的安全同源策略限制内容Cookie、LocalStorage、IndexedDB 等存储性内容只有同源才能访问AJAX 请求发送后,响应内容被浏览器拦截了DOM允许跨域加载的资...