Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/distributed-system/protocol/gossip-protocl.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Gossip 设计了两种可能的消息传播模式:**反熵(Anti-Entropy)**

![反熵伪代码](https://oss.javaguide.cn/github/javaguide/distributed-system/protocol/up-df16e98bf71e872a7e1f01ca31cee93d77b.png)

在我们实际应用场景中,一般不会采用随机的节点进行反熵,而是需要可以的设计一个闭环。这样的话,我们能够在一个确定的时间范围内实现各个节点数据的最终一致性,而不是基于随机的概率。像 InfluxDB 就是这样来实现反熵的。
在我们实际应用场景中,一般不会采用随机的节点进行反熵,而是可以设计成一个闭环。这样的话,我们能够在一个确定的时间范围内实现各个节点数据的最终一致性,而不是基于随机的概率。像 InfluxDB 就是这样来实现反熵的。

![](./images/gossip/反熵-闭环.png)

Expand All @@ -98,7 +98,7 @@ Gossip 设计了两种可能的消息传播模式:**反熵(Anti-Entropy)**

如下图所示(下图来自于[INTRODUCTION TO GOSSIP](https://managementfromscratch.wordpress.com/2016/04/01/introduction-to-gossip/) 这篇文章):

![Gossip 传播示意图](./images/gossip/gossip-rumor- mongering.gif)
![Gossip 传播示意图](./images/gossip/gossip-rumor-mongering.gif)

伪代码如下:

Expand Down
2 changes: 1 addition & 1 deletion docs/distributed-system/protocol/raft-algorithm.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ Leader 收到客户端请求后,会生成一个 entry,包含`<index,term,cmd

如果 Follower 接受该 entry,则会将 entry 添加到自己的日志后面,同时返回给 Leader 同意。

如果 Leader 收到了多数的成功响应,Leader 会将这个 entry 应用到自己的状态机中,之后可以成为这个 entry 是 committed 的,并且向客户端返回执行结果。
如果 Leader 收到了多数的成功响应,Leader 会将这个 entry 应用到自己的状态机中,之后可以称这个 entry 是 committed 的,并且向客户端返回执行结果。

raft 保证以下两个性质:

Expand Down
2 changes: 1 addition & 1 deletion docs/system-design/security/data-desensitization.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ public class HuToolDesensitizationTest {

现在有了数据脱敏工具类,如果前端需要显示数据数据的地方比较多,我们不可能在每个地方都调用一个工具类,这样就显得代码太冗余了,那我们如何通过注解的方式优雅的完成数据脱敏呢?

如果项目是基于 Spring Boot 的 web 项目,则可以利用 Spring Boot 自带的 jackson 自定义序列化实现。它的实现原来其实就是在 json 进行序列化渲染给前端时,进行脱敏。
如果项目是基于 Spring Boot 的 web 项目,则可以利用 Spring Boot 自带的 jackson 自定义序列化实现。它的实现原理其实就是在 json 进行序列化渲染给前端时,进行脱敏。

**第一步:脱敏策略的枚举。**

Expand Down
2 changes: 1 addition & 1 deletion docs/system-design/security/encryption-algorithms.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ tag:

## 哈希算法

哈希算法也叫哈希算法、散列函数或摘要算法,它的作用是对任意长度的数据生成一个固定长度的唯一标识,也叫哈希值、散列值或消息摘要(后文统称为哈希值)。
哈希算法也叫散列函数或摘要算法,它的作用是对任意长度的数据生成一个固定长度的唯一标识,也叫哈希值、散列值或消息摘要(后文统称为哈希值)。

![哈希算法效果演示](https://oss.javaguide.cn/github/javaguide/system-design/security/encryption-algorithms/hash-function-effect-demonstration.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/system-design/security/sentive-words-filter.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ tag:

### Trie 树

**Trie 树** 也称为字典树、单词查找树,哈系树的一种变种,通常被用于字符串匹配,用来解决在一组字符串集合中快速查找某个字符串的问题。像浏览器搜索的关键词提示就可以基于 Trie 树来做的。
**Trie 树** 也称为字典树、单词查找树,哈希树的一种变种,通常被用于字符串匹配,用来解决在一组字符串集合中快速查找某个字符串的问题。像浏览器搜索的关键词提示就可以基于 Trie 树来做的。

![浏览器 Trie 树效果展示](https://oss.javaguide.cn/github/javaguide/system-design/security/brower-trie.png)

Expand Down