diff --git a/docs/notes/消息队列.md b/docs/notes/消息队列.md
index f68b7b07..d85b3797 100644
--- a/docs/notes/消息队列.md
+++ b/docs/notes/消息队列.md
@@ -19,20 +19,20 @@
消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。
-
+
## 发布/订阅
消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。
-
+
发布与订阅模式和观察者模式有以下不同:
-- 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。
-- 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,发布者向频道发送一个消息之后,就不需要关心订阅者何时去订阅这个消息,可以立即返回。
+- 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。
+- 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,生产者向频道发送一个消息之后,就不需要关心消费者何时去订阅这个消息,可以立即返回。
-
+
# 二、使用场景
@@ -62,9 +62,7 @@
发送端完成操作后一定能将消息成功发送到消息队列中。
-实现方法:
-
-- 在本地数据库建一张消息表,将消息数据与业务数据保存在同一数据库实例里,这样就可以利用本地数据库的事务机制。事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。
+实现方法:在本地数据库建一张消息表,将消息数据与业务数据保存在同一数据库实例里,这样就可以利用本地数据库的事务机制。事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。
## 接收端的可靠性
diff --git a/docs/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png b/docs/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png
new file mode 100644
index 00000000..069b7e17
Binary files /dev/null and b/docs/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png differ
diff --git a/docs/pics/4e93f7d4-2623-4129-a939-59051256561e.png b/docs/pics/4e93f7d4-2623-4129-a939-59051256561e.png
new file mode 100644
index 00000000..b48fb693
Binary files /dev/null and b/docs/pics/4e93f7d4-2623-4129-a939-59051256561e.png differ
diff --git a/docs/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png b/docs/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png
new file mode 100644
index 00000000..656e6501
Binary files /dev/null and b/docs/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png differ
diff --git a/notes/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png b/notes/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png
new file mode 100644
index 00000000..069b7e17
Binary files /dev/null and b/notes/pics/206f965e-53b2-4732-90cf-75910b80d7ac.png differ
diff --git a/notes/pics/4e93f7d4-2623-4129-a939-59051256561e.png b/notes/pics/4e93f7d4-2623-4129-a939-59051256561e.png
new file mode 100644
index 00000000..b48fb693
Binary files /dev/null and b/notes/pics/4e93f7d4-2623-4129-a939-59051256561e.png differ
diff --git a/notes/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png b/notes/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png
new file mode 100644
index 00000000..656e6501
Binary files /dev/null and b/notes/pics/530764d5-f67f-47a2-8df4-57e8646e1400.png differ
diff --git a/notes/消息队列.md b/notes/消息队列.md
index c9b8f946..84594301 100644
--- a/notes/消息队列.md
+++ b/notes/消息队列.md
@@ -19,20 +19,20 @@
消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。
-
+
## 发布/订阅
消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。
-
+
发布与订阅模式和观察者模式有以下不同:
-- 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。
-- 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,发布者向频道发送一个消息之后,就不需要关心订阅者何时去订阅这个消息,可以立即返回。
+- 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。
+- 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,生产者向频道发送一个消息之后,就不需要关心消费者何时去订阅这个消息,可以立即返回。
-
+
# 二、使用场景
@@ -62,9 +62,7 @@
发送端完成操作后一定能将消息成功发送到消息队列中。
-实现方法:
-
-- 在本地数据库建一张消息表,将消息数据与业务数据保存在同一数据库实例里,这样就可以利用本地数据库的事务机制。事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。
+实现方法:在本地数据库建一张消息表,将消息数据与业务数据保存在同一数据库实例里,这样就可以利用本地数据库的事务机制。事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。
## 接收端的可靠性