Skip to content

Commit

Permalink
feat: 《分布式IM即时通讯系统》-即时通讯后端服务
Browse files Browse the repository at this point in the history
  • Loading branch information
binghe committed Dec 19, 2023
1 parent e9e9ac4 commit d7c5061
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 6 deletions.
4 changes: 2 additions & 2 deletions docs/md/project/im/im-backend/2023-12-18-chapter04.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ pay: https://articles.zsxq.com/id_8iivhbu8jwzl.html
用户通过终端登录分布式IM即时通讯系统时,总体的交互流程如图4-1所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-12-18-001.png?raw=true" width="70%">
<img src="https://binghe.gitcode.host/images/project/im/2023-12-18-001.png?raw=true" width="70%">
<br/>
</div>

Expand All @@ -44,7 +44,7 @@ pay: https://articles.zsxq.com/id_8iivhbu8jwzl.html
即时通讯后端服务最核心、也是最主要的功能就是收发消息,在收发消息的类型上,包括:登录消息、心跳消息、单聊消息和群聊消息。同样,在即时通讯后端服务收发消息的核心类就是IMChannelHandler,处理登录消息的整体流程会涉及到:IMChannelHandler类、MessageProcessor接口、ProcessorFactory类、LoginProcessor类,整体结构如图4-2所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-12-18-002.png?raw=true" width="80%">
<img src="https://binghe.gitcode.host/images/project/im/2023-12-18-002.png?raw=true" width="80%">
<br/>
</div>

Expand Down
4 changes: 2 additions & 2 deletions docs/md/project/im/im-backend/2023-12-19-chapter05.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ pay: https://articles.zsxq.com/id_70zz6x7szlw3.html
用户通过终端登录分布式IM即时通讯系统后,用户终端会与即时通讯后端服务建立长连接,用户终端无论是向即时通讯后端服务发送登录消息,还是向即时通讯后端服务发送心跳消息,整体流程如图5-1所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-12-19-001.png?raw=true" width="70%">
<img src="https://binghe.gitcode.host/images/project/im/2023-12-19-001.png?raw=true" width="70%">
<br/>
</div>

Expand All @@ -44,7 +44,7 @@ pay: https://articles.zsxq.com/id_70zz6x7szlw3.html
由于我们之前已经对消息处理器的大体框架进行了设计和实现,并且在消息处理器的设计和实现中,我们考虑到的后续的扩展性,所以,在原来的基础上新增心跳处理器是非常方便的,整体类图如图5-2所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-12-19-002.png?raw=true" width="70%">
<img src="https://binghe.gitcode.host/images/project/im/2023-12-19-002.png?raw=true" width="70%">
<br/>
</div>

Expand Down
2 changes: 1 addition & 1 deletion docs/md/project/im/im-backend/2023-12-20-chapter06.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pay: https://articles.zsxq.com/id_n9mp57b1iwq4.html
单聊消息的执行流程如图6-1所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-11-28-003.png?raw=true" width="70%">
<img src="https://binghe.gitcode.host/images/project/im/2023-11-28-003.png?raw=true" width="70%">
<br/>
</div>

Expand Down
2 changes: 1 addition & 1 deletion docs/md/project/im/im-backend/2023-12-21-chapter07.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ pay: https://articles.zsxq.com/id_u5wxbewwomav.html
群聊就是在分布式IM即时通讯系统中,多个用户在同一个群组中进行聊天,此时在发送消息时,我们可以通过群组ID找出群内所有在线的用户,将消息即时发送给在线的用户。那些未在线的用户就按照单聊未在线的用户进行处理,如图7-1所示。

<div align="center">
<img src="https://binghe.gitcode.host/assets/images/core/concurrent/2023-11-28-004.png?raw=true" width="70%">
<img src="https://binghe.gitcode.host/images/project/im/2023-11-28-004.png?raw=true" width="70%">
<br/>
</div>

Expand Down
6 changes: 6 additions & 0 deletions docs/md/zsxq/essence/essence.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ title: 归档:部分精华内容
* [接口幂等与支付状态机](https://t.zsxq.com/151ECgTTq)
* [今天工作遇到一个测试环境的bug,json数据太长了,导致数据部分新增失败...](https://t.zsxq.com/15FDys52h)
* [背景:类似信用卡还款,一笔还款进来,会根据不同场景下的规则将本金、利息、服务费、罚息、其他费用等条目分给不同的账户。](https://t.zsxq.com/15YvoLmIR)
* [分布式IM即时通讯系统搭建环境时候遇到的一个问题](https://t.zsxq.com/158zdnzgq)
* [学习分库分桶里面的构建分桶,计算出每个桶里面的数据。如果有200条数据,分3个桶...](https://t.zsxq.com/15dKCau2k)
* [如果将MySQL分成 Server层和存储引擎层两大部分,那么Buffer Pool位于存储引擎层。](https://t.zsxq.com/15rRqsBU1)
* [再次回看分库分表部分,慢慢理解分库分表分桶设计,以及对应缓存的方案](https://t.zsxq.com/15YbnEB9Z)
* [Linux 是如何启动的?](https://t.zsxq.com/15XM7uOiK)

## 五、面试面经

Expand Down Expand Up @@ -142,6 +147,7 @@ title: 归档:部分精华内容
* [打卡第三十九天:集合面试五连鞭](https://t.zsxq.com/156aKy2DR)
* [打卡第四十天:List,Set,Map三者的区别?List、Set、Map 是否继承自 Collection 接口?List、Map、Set 三个接口存取元素时,各有什么特点?](https://t.zsxq.com/15k1zofcu)
* [打卡第四十一天:JVM 有哪些垃圾回收算法?](https://t.zsxq.com/15ArjSb5i)
* [打卡第四十二天:集合框架底层数据结构](https://t.zsxq.com/15aPkZ4rF)

## 六、职场经验

Expand Down

0 comments on commit d7c5061

Please sign in to comment.