mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-08-10 00:41:37 +08:00
Compare commits
3 Commits
761e804d8e
...
36f21b4e3f
Author | SHA1 | Date | |
---|---|---|---|
|
36f21b4e3f | ||
|
5d4b9a330b | ||
|
8d6f04fa1f |
@ -177,6 +177,26 @@ SpringBoot 解析,不适合初学者。我是去年入手的,现在就看了
|
||||
|
||||
比较一般的一本书,可以简单拿来看一下。
|
||||
|
||||
### MyBatis
|
||||
|
||||
MyBatis 国内用的挺多的,我的建议是不需要花太多时间在上面。当然了,MyBatis 的源码还是非常值得学习的,里面有很多不错的编码实践。这里推荐两本讲解 MyBatis 源码的书籍。
|
||||
|
||||
**[《手写 MyBatis:渐进式源码实践》](https://book.douban.com/subject/36243250/)**
|
||||
|
||||

|
||||
|
||||
我的好朋友小傅哥出版的一本书。这本书以实践为核心,摒弃 MyBatis 源码中繁杂的内容,聚焦于 MyBaits 中的核心逻辑,简化代码实现过程,以渐进式的开发方式,逐步实现 MyBaits 中的核心功能。
|
||||
|
||||
这本书的配套项目的仓库地址:<https://github.com/fuzhengwei/small-mybatis> 。
|
||||
|
||||
**[《通用源码阅读指导书――MyBatis 源码详解》](https://book.douban.com/subject/35138963/)**
|
||||
|
||||

|
||||
|
||||
这本书通过 MyBatis 开源代码讲解源码阅读的流程和方法!一共对 MyBatis 源码中的 300 多个类进行了详细解析,包括其背景知识、组织方式、逻辑结构、实现细节。
|
||||
|
||||
这本书的配套示例仓库地址:<https://github.com/yeecode/MyBatisDemo> 。
|
||||
|
||||
### Netty
|
||||
|
||||
**[《Netty 实战》](https://book.douban.com/subject/27038538/)**
|
||||
|
@ -95,7 +95,7 @@ tag:
|
||||
|
||||
> 这里是 `3PC` 在成功的环境下的流程图,你可以看到 `3PC` 在很多地方进行了超时中断的处理,比如协调者在指定时间内未收到全部的确认消息则进行事务中断的处理,这样能 **减少同步阻塞的时间** 。还有需要注意的是,**`3PC` 在 `DoCommit` 阶段参与者如未收到协调者发送的提交事务的请求,它会在一定时间内进行事务的提交**。为什么这么做呢?是因为这个时候我们肯定**保证了在第一阶段所有的协调者全部返回了可以执行事务的响应**,这个时候我们有理由**相信其他系统都能进行事务的执行和提交**,所以**不管**协调者有没有发消息给参与者,进入第三阶段参与者都会进行事务的提交操作。
|
||||
|
||||
总之,`3PC` 通过一系列的超时机制很好的缓解了阻塞问题,但是最重要的一致性并没有得到根本的解决,比如在 `PreCommit` 阶段,当一个参与者收到了请求之后其他参与者和协调者挂了或者出现了网络分区,这个时候收到消息的参与者都会进行事务提交,这就会出现数据不一致性问题。
|
||||
总之,`3PC` 通过一系列的超时机制很好的缓解了阻塞问题,但是最重要的一致性并没有得到根本的解决,比如在 `DoCommit` 阶段,当一个参与者收到了请求之后其他参与者和协调者挂了或者出现了网络分区,这个时候收到消息的参与者都会进行事务提交,这就会出现数据不一致性问题。
|
||||
|
||||
所以,要解决一致性问题还需要靠 `Paxos` 算法 ⭐️ ⭐️ ⭐️ 。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user