消息通知系统详解1---通讯方式-灵析社区

提笔写架构

什么是消息通知系统

消息通知系统,顾名思义即通知消息的传达处理系统。目的是为了让用户获得需要得到的消息及提醒并进行处理。

消息通知微服务的定位是“平台内”的“消息”功能,分为全员消息,订阅类消息,点对点消息。例如系统通知,私信,@类消息

  • 全员消息

系统通知,活动通知,管理员公告等全部用户都会收到的消息

  • 订阅类消息

关注某一类数据的用户,该类数据有更新时向用户发送的消息。例如关注某位大v的微博,公众号,订阅某位知名作家的专栏

  • 点对点消息

某位用户对另外一位用户进行操作后,系统向被操作的用户发送的消息。例如点赞,发红包。

系统特性

通讯方式

这里先不考虑后端整体实现,前端与后端之间通讯方式如何选型,如何实现实时/准实时数据交互:

需要介绍下三种通讯方式:

短连接

客户端和服务器每进行一次通讯,就建立一次连接,通讯结束就中断连接。

HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。HTTP/1.0使用的TCP默认是短连接。

长连接

是指在建立连接后可以连续多次发送数据,直到双方断开连接。

HTTP从1.1版本起,底层的TCP使用的长连接。

使用长连接的HTTP协议,会在响应头加入代码:Connection:keep-alive

短连接和长连接的区别

通讯流程

短连接:创建连接 -> 传输数据 -> 关闭连接 ​ 长连接:创建连接 -> 传输数据 -> 保持连接 -> 传输数据 -> …… -> 关闭连接

适用场景

短连接:并发量大,数据交互不频繁情况

长连接:数据交互频繁,点对点的通讯

websocket协议

什么是websocket协议

  • WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
  • 何谓全双工:全双工(FullDuplex)是通讯传输的一个术语。双方在通信时允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时进行信号的双向传输。指A→B的同时B→A,就像是双向车道。
  • 单工就就像是汽车的单行道,是在只允许甲方向乙方传送信息,而乙方不能向甲方传送 。
  • 服务器向客户端发送数据的功能是websocket协议的典型使用场景

三种通信方式的优缺点

优缺点如下:

在 WebSocket中,浏览器和服务器只需要完成一次握手,就可以创建持久性的连接,并进行双向数据传输。

在推送功能的实现技术上,相比使用Ajax 定时轮询的方式(setInterval),WebSocket 更节省服务器资源和带宽。

出于服务器性能和实时性考虑,前后端通讯方式采用WebSocket协议实现。

阅读量:2047

点赞量:0

收藏量:1