Mysql - 从一个小 case 理解 MVCC
从 innoDB 的一致性非锁定读说起
非锁定读和行快照数据
一致性的非锁定读(consistent nonlocking read)是指 InnoDB 存储引擎通过行多版本控制(multi versioning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行 DELETE 或 UPDATE 操作,这时读取操作不会因此去等待行上锁的释放。相反地,InnoDB 存储引擎会去读取行的一个快照数据,下图是关于快照数据的一个简单示图:
一致性的非锁定读(consistent nonlocking read)是指 InnoDB 存储引擎通过行多版本控制(multi versioning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行 DELETE 或 UPDATE 操作,这时读取操作不会因此去等待行上锁的释放。相反地,InnoDB 存储引擎会去读取行的一个快照数据,下图是关于快照数据的一个简单示图:
Push 模式是指由 Server 端来控制消息的推送,即当有消息到 Server 之后,会将消息主动投递给 client(Consumer 端)。
下面是使用 DefaultMQPushConsumer 消费消息的官方示例代码:
本篇分为 RocketMQ 部署和 RocketMQ-dashboard 部署两部分,主要是 RocketMQ 部署问题较多,汇总了下网上各路大神以及官方 issue 的讨论汇总而来。
根据官方的快速开始 尝试在本地部署 RocketMQ;如果你是按照官方文档直接来搞,可能 90% 是不可能成功的。
ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server. It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.
ab 是 apache http server 基准测试工具,它可以帮助我们去了解当前服务的表现,如每秒请求数等。下面是 ab 对应的所有 options 摘要信息:
本篇主要对 SOFARegistry 的数据同步模块进行解析,对于注册中心的概念以及 SOFARegistry 的基础架构不做过多阐述,相关介绍可以见海量数据下的注册中心 - SOFARegistry 架构介绍 这篇文章。
在阅读本文之前,你可以通过 Creating Asynchronous Methods 指导来体验下创建异步方法的使用方式。
为什么要写这篇文章,本质上对于这些 Spring 已经封装好的能力,并不需要去关注它底层到底是怎么玩的,比如 @Async
,你肯定可以猜到对于打了这个注解的方法(或者类),在执行这个方法(或者类下所有方法)时,Spring 框架会将当前方法丢进到一个单独的线程池中去执行,以达到方法异步执行的目的。
在之前的 聊一聊 maven 生命周期和 maven 插件编写 这篇文章中,简单聊了点maven 构建生命周期和如何编写一个 maven 插件。本篇文章从插件入手,来探讨下 maven 中那些于测试相关的插件,这些插件与工程师日常开发是密切相关的,可能很多情况下你不需要关注,因为已经有前辈帮你搞完了;“事不关己高高挂起” 与 “知其然知其所以然” 是两种不同的态度,对待技术,我建议是后者!
YApi 后端使用的是 MongoDB,先进入命令行管理工具:
mongo
然后进入 yapi 数据库:
nacos 配置最高级别的隔离是 namespace,其后是 group;如果有配置隔离的诉求,建议优先使用 namespace 进行隔离。因为对于 sharedConfigs 和 extensionConfigs 来说,他们使用的是默认的 DEFALUT_GROUP,所以如果你配置了 sharedConfigs 和 extensionConfigs ,期望通过指定 group 进行隔离是做不到的。