微服务化的即时通信系统架构分析与设计.docxVIP

微服务化的即时通信系统架构分析与设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

即时通信(InstantMessaging,IM)服务基础架构从早期的C/S、P2P架构发展到现在已变成一个复杂的分布式系统,而微服务化的系统架构是未来软件系统发展的方向。基于此,研究了即时通信的基本技术原理,分析了即时通信系统微服务化的架构和服务间的通信方式,设计出一种分层的即时通信系统微服务架构,为基于微服务架构开发即时通信服务提供了清晰的架构模型。

近些年,随着互联网技术的发展,越来越多应用软件逐渐将即时通信服务与本业务相黏合,来提高本应用的交互效率。而运用传统技术开发单体即时通信系统,一是开发周期过于繁杂,不适合与现阶段主流线上产品搭配使用,二是在吞吐并发支持量上也没法随访问量动态提高。伴随着微服务软件架构技术的不断成熟,本文将以此设计出一种轻量级、高可靠、低成本的即时通信架构方案。

一、即时通信的基本技术原理

当前对苹果品质的检测工作主要依靠人工完成,但是人工检测会存在误判、效率低和成本高问题,且对于后期的水果分拣工作也存在效率和准确率低的问题。

即时通信是一种基于Internet的交互技术,涉及IP、TCP、UDP、套接字(Socket)及通信过程中传输数据的编解码和不同平台接入方式等多种技术。其模式基本分为客户端/服务器(C/S)通信模式和点对点(P2P)通信模式[1]。

C/S结构是以服务器为中心将网络上多个不同客户机连接在一起,服务器与客户机以“两层”物理形式分别完成不同的功能。但在多客户机并行访问下,会涉及数据的存储变更及服务器被多用户并行访问控制等问题。因此,采取一种“三层”的C/S架构更为合理[2]。“三层”的C/S并不是将物理结构多抽出来一种,而是在服务端设计出“一层”专门负责存储数据的持久层。“三层”C/S结构中客户端主要服务用户交互,服务端逻辑处理层对信息进行逻辑处理,服务端数据层负责信息数据的管理。

点对点(P2P)通信模式是无中心服务器的对等模式,与有中心服务器的中央服务系统不同,每个用户端节点既是服务的提供者又是服务的使用者,节点之间直接通信可以充分利用网络资源,减少网络阻塞情况。且无中央服务器集中管理,系统能够有效避免单点故障所带来的问题,大大提高了系统容错性能。不过,P2P模式有分散性、自治性和动态性等特点,造成了在一些情况下用户访问结果的不确定性。

当下,比较流行的IM系统都是组合使用C/S模式和P2P模式,利用服务器来实现传输信息的管控和漫游,以构建出虚拟P2P通信。用户在使用系统时通过C/S架构的服务器端保存用户之间的链路状态,以便用户以后进行通信时可以直接从服务器获取自己及其他用户之间的链路信息,进而快速完成信息的转发与投递,实现用户之间点对点通信。

二、即时通信系统架构的分析与设计

对于一个即时通信系统,消息传输会经过客户端接入服务器进行消息处理,在处理过程中,会按照用户限定的关系进行发送投递;在存储与同步过程中,针对消息的不同属性需要选择不同种类的存储数据库。因此,客户端(Client)使用不同的平台经过不同协议接入服务器端,而微服务化下服务器端可以设计出接入服务器(Interface)、消息处理服务器(Logic)以及数据存储层(DataBase)这三层,再在每层定义不同功能的微服务模块,模块之间使用不同通信方式进行解耦。其架构模型设计如图1所示,架构相关服务名词说明如表1所示,不同服务间相互调用与传输方法说明如表2所示。

注:①longpolling:HTTP长轮询,指服务器将保留浏览器请求的响应,一旦服务器有更新就发送它,然后客户机可以发送另一个请求。

2.1、客户端服务层

客户端服务层主要提供与用户交互的服务,主要包括PC端、Web浏览器和手机移动端三种平台。不同平台在获取与消息服务器构建的连接时一般使用的传输协议也不同。

在浏览器使用IM服务时,由于现在的浏览器Web网站大多都已采用HTML5标准规范,所以在网络传输协议上也支持websocket协议,websocket是一种全双工通信的协议,通过http解析一个upgrade请求与服务器“握手”,形成一条持久且快速的通道,客户端和服务端都可以主动推送消息,可以是文本数据也可以是二进制数据,而且没有同源策略的限制,不存在跨域问题[3]。

PC端和手机移动端一般都是基于本地运行系统开发而成,一般在传输上将数据信息通过一定的应用层级编解码后直接使用TCP或UDP两种基础协议传输。TCP协议能够提供可靠的数据传输,它通过“三次握手”的过程来构建一个虚拟连接通道实现信息数据交互,当数据包在交付期间遭到破坏丢失或变得无序时,TCP协议可以通过为其发送的每个数据包提供一个序号来完成此恢复。不过,UDP可以争用网络通道,而且不需要在传输信息之前构建数据通道,因此它的传输过程非常快。要保证消息完整不丢包,IM系统可以TCP协议来

文档评论(0)

外卖人-小何 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档