摘要: 首先,造成这个问题的 BUG RocketMQ 官方已经在 3月16号 的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的 《RocketMQ Consumer 启动时都干了些啥?》 ,这篇文章讲解了 RocketMQ 的 Consumer 启动之后都做 阅读全文
posted @ 2021-11-23 15:38 detectiveHLH 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 可能我们对 RocketMQ 的消费者认知乍一想很简单,就是一个拿来消费消息的客户端而已,你只需要指定对应的 Topic 和 ConsumerGroup,剩下的就是只需要: 接收消息处理消息 就完事了。 简略消费模型 当然,可能在实际业务场景下,确实是这样。但是如果我们不清楚 Consumer 启动 阅读全文
posted @ 2021-11-04 12:26 detectiveHLH 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 我的 个人网站 上线了,上面可以更好的检索历史文章,并且可以对文章进行留言,欢迎大家访问 之前讲了「从输入 URL 再到浏览器成功看到界面」中的域名是如何变成 IP 地址的,了解了 DNS 相关的东西。这篇文章就聊聊发生在 DNS 解析之后的操作——建立连接。也就是我们常说的三次握手。 看到三次握手 阅读全文
posted @ 2021-10-08 10:24 detectiveHLH 阅读(400) 评论(1) 推荐(0) 编辑
摘要: 你的域名是如何变成 IP 地址的? 我的 个人网站 上线了,上面可以更好的检索历史文章,并且可以对文章进行留言,欢迎大家访问 可能大家都知道或者被问过一个问题,那就是很经典的「从浏览器输入 URL 再到页面展示,都发生了什么」。这个问题虽然简单,但是真的能够从回答的各种细节上看出不同人之间的水平差距。 这篇文章主要是聊一聊输入 URL 阅读全文
posted @ 2021-09-01 10:00 detectiveHLH 阅读(494) 评论(0) 推荐(1) 编辑
摘要: Base64 Base64 是什么?是将字节流转换成可打印字符、将可打印字符转换为字节流的一种算法。Base64 使用 64 个可打印字符来表示转换后的数据。 准确的来说,Base64 不算是一种加、解密的算法,它是一种编码、解码的算法。这也是为什么我的用词是编码、解码,而不是加密、解密。 编码原理 阅读全文
posted @ 2021-08-24 10:43 detectiveHLH 阅读(403) 评论(5) 推荐(3) 编辑
摘要: 由于 MySQL 的整个体系太过于庞大,文章的篇幅有限,不能够完全的覆盖所有的方面。所以我会尽可能的从更加贴进我们日常使用的方式来进行解释。 小白眼中的 MySQL 首先,对于我们来说,MySQL 是个啥?我们从一个最简单的例子来回顾一下。 这可能就是最开始大家认知中的 MySQL。那 MySQL 阅读全文
posted @ 2021-08-18 10:30 detectiveHLH 阅读(795) 评论(1) 推荐(6) 编辑
摘要: 不知道大家有没有想过下面这件事? 我们平时调用 DELETE 在 MySQL 中删除的数据都去哪儿了? 这还用问吗?当然是被删除了啊 那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了 id=1 的数据,同时事务B又去读取 id=1 的数据,如果这条数据真的被删 阅读全文
posted @ 2021-08-11 14:04 detectiveHLH 阅读(854) 评论(0) 推荐(4) 编辑
摘要: 之前发过一篇文章,简单了解 MySQL 中相关的锁,里面提到了,如果我们使用的 MySQL 存储引擎为 InnoDB ,并且其事务隔离级别是 RR 可重复读的话,是可以避免幻读的。 但是没想到,都 1202 年了都还有人杠,说 InnoDB 的 RR 隔离级别下会出现幻读,只能依靠 gap 和 ne 阅读全文
posted @ 2021-07-26 10:45 detectiveHLH 阅读(400) 评论(0) 推荐(2) 编辑
摘要: 之前写了一些关于 MySQL 的 InnoDB 存储引擎的文章,里面好几次都提到了页(Pages)这个概念,但是都只是简要的提了一下。例如之前在聊 InnoDB内存结构 时提到过,但当时的重点是内存架构,就没有展开深入。 我发现有好几次都需要提到页,那我就正好拿一篇来详细的讲讲 InnoDB 中的页 阅读全文
posted @ 2021-06-21 09:57 detectiveHLH 阅读(434) 评论(0) 推荐(1) 编辑
摘要: 这几天瞎逛,不知道在哪里瞟到了缓存的双写,就突然想起来这块虽然简单,但是细节上还是有足够多我们可以去关注的点。这篇文章就来详细聊聊双写一致性。 首先我们知道,现在将高速缓存应用于业务当中已经十分常见了,甚至可能跟数据库的频率不相上下。你的用户量如果上去了,直接将一个裸的 MySQL 去扛住所有压力明 阅读全文
posted @ 2021-06-11 09:28 detectiveHLH 阅读(778) 评论(2) 推荐(1) 编辑
摘要: 简单了解索引 首先,索引(Index)是什么?如果我直接告诉你索引是数据库管理系统中的一个有序的数据结构,你可能会有点懵逼。 为了避免这种情况,我打算举几个例子来帮助你更容易的认识索引。 我们查询字典的时候可以根据字的部首、笔画来查找到对应的字,这样可以快速的找到对应的字所在页,在字典开头那玩意就叫 阅读全文
posted @ 2021-05-17 10:03 detectiveHLH 阅读(651) 评论(0) 推荐(4) 编辑
摘要: 之前的文章Zookeeper基础原理&应用场景详解中将Zookeeper的基本原理及其应用场景做了一个详细的介绍,虽然介绍了其底层的存储原理、如何使用Zookeeper来实现分布式锁。但是我认为这样也仅仅只是了解了Zookeeper的一点皮毛而已。所以这篇文章就给大家详细聊聊Zookeeper的核心 阅读全文
posted @ 2021-04-28 11:37 detectiveHLH 阅读(1065) 评论(0) 推荐(3) 编辑
摘要: 本篇文章聊聊消息队列相关的东西,内容局限于我们为什么要用消息队列,消息队列究竟解决了什么问题,消息队列的选型。 为了更容易的理解消息队列,我们首先通过一个开发场景来切入。 不使用消息队列的场景 首先,我们假设A同学负责订单系统的开发,B、C同学负责开发积分系统、仓储系统。我们知道,在一般的购物电商平 阅读全文
posted @ 2021-02-19 09:48 detectiveHLH 阅读(594) 评论(0) 推荐(5) 编辑
摘要: 距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来。这篇博客的本意是带大家从零开始搭建K8S集群的。但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗?是我的话我会选择拒绝,所以我加了关于K8S的简单介绍,每一步的步骤都添加了解释。由于篇幅和时间原因 阅读全文
posted @ 2019-12-16 14:01 detectiveHLH 阅读(1569) 评论(10) 推荐(14) 编辑
摘要: 前言 接触WebAssembly之后,在google上看了很多资料。感觉对WebAssembly的使用、介绍、意义都说的比较模糊和笼统。感觉看了之后收获没有达到预期,要么是文章中的例子自己去实操不能成功,要么就是不知所云、一脸蒙蔽。本着业务催生技术的态度,这边文章就诞生了。前部分主要是对WebAss 阅读全文
posted @ 2018-11-08 14:34 detectiveHLH 阅读(53718) 评论(12) 推荐(14) 编辑
摘要: 首先,造成这个问题的 BUG RocketMQ 官方已经在 3月16号 的这个提交中修复了,这里只是探讨一下在修复之前造成问题的具体细节,更多的上下文可以参考我之前写的 《RocketMQ Consumer 启动时都干了些啥?》 ,这篇文章讲解了 RocketMQ 的 Consumer 启动之后都做 阅读全文
posted @ 2021-11-23 15:38 detectiveHLH 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 可能我们对 RocketMQ 的消费者认知乍一想很简单,就是一个拿来消费消息的客户端而已,你只需要指定对应的 Topic 和 ConsumerGroup,剩下的就是只需要: 接收消息处理消息 就完事了。 简略消费模型 当然,可能在实际业务场景下,确实是这样。但是如果我们不清楚 Consumer 启动 阅读全文
posted @ 2021-11-04 12:26 detectiveHLH 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 我的 个人网站 上线了,上面可以更好的检索历史文章,并且可以对文章进行留言,欢迎大家访问 之前讲了「从输入 URL 再到浏览器成功看到界面」中的域名是如何变成 IP 地址的,了解了 DNS 相关的东西。这篇文章就聊聊发生在 DNS 解析之后的操作——建立连接。也就是我们常说的三次握手。 看到三次握手 阅读全文
posted @ 2021-10-08 10:24 detectiveHLH 阅读(400) 评论(1) 推荐(0) 编辑
摘要: 你的域名是如何变成 IP 地址的? 我的 个人网站 上线了,上面可以更好的检索历史文章,并且可以对文章进行留言,欢迎大家访问 可能大家都知道或者被问过一个问题,那就是很经典的「从浏览器输入 URL 再到页面展示,都发生了什么」。这个问题虽然简单,但是真的能够从回答的各种细节上看出不同人之间的水平差距。 这篇文章主要是聊一聊输入 URL 阅读全文
posted @ 2021-09-01 10:00 detectiveHLH 阅读(494) 评论(0) 推荐(1) 编辑
摘要: Base64 Base64 是什么?是将字节流转换成可打印字符、将可打印字符转换为字节流的一种算法。Base64 使用 64 个可打印字符来表示转换后的数据。 准确的来说,Base64 不算是一种加、解密的算法,它是一种编码、解码的算法。这也是为什么我的用词是编码、解码,而不是加密、解密。 编码原理 阅读全文
posted @ 2021-08-24 10:43 detectiveHLH 阅读(403) 评论(5) 推荐(3) 编辑
摘要: 由于 MySQL 的整个体系太过于庞大,文章的篇幅有限,不能够完全的覆盖所有的方面。所以我会尽可能的从更加贴进我们日常使用的方式来进行解释。 小白眼中的 MySQL 首先,对于我们来说,MySQL 是个啥?我们从一个最简单的例子来回顾一下。 这可能就是最开始大家认知中的 MySQL。那 MySQL 阅读全文
posted @ 2021-08-18 10:30 detectiveHLH 阅读(795) 评论(1) 推荐(6) 编辑
摘要: 不知道大家有没有想过下面这件事? 我们平时调用 DELETE 在 MySQL 中删除的数据都去哪儿了? 这还用问吗?当然是被删除了啊 那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了 id=1 的数据,同时事务B又去读取 id=1 的数据,如果这条数据真的被删 阅读全文
posted @ 2021-08-11 14:04 detectiveHLH 阅读(854) 评论(0) 推荐(4) 编辑
摘要: 之前的文章简单的介绍了 MySQL 的事务隔离级别,它们分别是:读未提交、读已提交、可重复读、串行化。这篇文章我们就来探索一下 MySQL 事务隔离级别的底层原理。 本篇文章针对 InnoDB 存储引擎 多版本并发控制 我们知道,读未提交会造成脏读、幻读、不可重复读,读已提交会造成幻读、不可重复读, 阅读全文
posted @ 2021-08-02 09:36 detectiveHLH 阅读(383) 评论(0) 推荐(1) 编辑
摘要: 之前发过一篇文章,简单了解 MySQL 中相关的锁,里面提到了,如果我们使用的 MySQL 存储引擎为 InnoDB ,并且其事务隔离级别是 RR 可重复读的话,是可以避免幻读的。 但是没想到,都 1202 年了都还有人杠,说 InnoDB 的 RR 隔离级别下会出现幻读,只能依靠 gap 和 ne 阅读全文
posted @ 2021-07-26 10:45 detectiveHLH 阅读(400) 评论(0) 推荐(2) 编辑
摘要: 本篇文章已放到 Github github.com/sh-blog 仓库中,里面对我写的所有文章都做了分类,更加方便阅读。同时也会发布一些职位信息,持续更新中,欢迎 Star 对于 ArrayList 来说,我们平常用的最多的方法应该就是 add 和 remove 了,本文就主要通过这两个基础的方法 阅读全文
posted @ 2021-07-20 10:28 detectiveHLH 阅读(341) 评论(0) 推荐(1) 编辑