2020年,你需要一个全网通用的网站平台

甘德县小程序分享分布式网站消息通道服务的设计

编辑:甘德县新城建站 关注: 时间:2019-12-17 10:58:28


温馨提示:专业网站建设、小程序制作、APP开发,尽在新城建站,详询 15544599750(手机、微信、QQ同号)

分布式消息通道广泛应用在很多公司,尤其是在移动App和服务端需要上传、推送大量的数据和消息时。比如打车App每天要上传大量的位置信息,服务端也有很多订单要及时推送给司机;此外,由于司机是在高速移动过程中,所以网络连接的稳定性也不是很好这类场景给消息通道的高可用设计带来很大的挑战。



一个典型的移动Ap的消息通道的设计架构图,这种设计比较适合上传数据量大,并且高速移动导致网络不太稳定的链路。

链路1是 Client和整个服务端的长连接链路,一般采用私有协议的TCP请求。如果是第一次请求还会通过2做链接认证,认证通过后会把该 Client和接入集群的某个服务器做个KV对,并记录到路由表里这可以方便下发消息时找到该链接。经过链路4,上行消息处理集群会将TCP请求转成普通的HTTP请求,再调用后端业务执行具体的业务逻辑,或者只是上传一个数据而已,不做任何响应。如果业务有数据需要下发,会经过链路6,把消息推送到消息下发处理集群,由它把消息推送给 Client。

消息下发集群公査向链接路表,确足当前Cent的链按在言,再通该服务器把消息推送下去。这里常见的问题是当前 Client的网络不可达,导致消息无法推送。在这种情况下,消息下发处理集群会保持该消息,并定时尝试再推送;如果Client重新建立连接,连接的服务器也会随之变化,那么消息下发集群会去查询链接路由表再重新连接新的KV对。

链路9是为了处理 Client端的一些同步请求而设计的。例如 Client需要发送一个HTTP请求并且期望能返回结果,这时Client中的业务层可能直接请求HTTP,再经过 Client I中的网络模块转成私有TCP协议,在上行长链请求集群转成HTP请求,调用后端业务并将HTTP的response转成消息发送到消息下发处理集群,异步下发给Client,到达Client再转成业务的HTTPresponse。这种设计的主要考虑是当HTTP响应返回时,如果长链已经断掉,该响应就没法再推送回去。因此,这种上行同步请求而下行异步推送是一种更高可用的设计。

从整体架构上看,只有接入集群是有状态的,其他集群都是无状态的,这也保证了网站设计集群的扩展性。如果接入点在全国有多个点,并且这些点与服务端有专线网络服务,接人集群还可以做到就近接入。

拓展阅读:

甘德县小程序开发谈网站降权后怎么处理?

甘德县网站推广分享做SEO必须熟知的搜索引擎工作原理

甘德县网络优化谈自学网站优化需要知道的关键词分类

甘德县小程序开发谈网站站内链接的优化方法

甘德县网站建设公司谈大型网站平台为什么需要中台?

甘德县网站推广分享网站无线链路的优化

甘德县建站分享Web测试实践步骤

甘德县SEO谈你的网站是否要自动化?

本文由新城建站整理发布,喜欢请收藏,转载请保留链接 甘德县小程序分享分布式网站消息通道服务的设计https://www.nccpu.net/qinghai/guoluo/gandexian/28629.html

服务支持

我们珍惜您每一次在线询盘,有问必答,用专业的态度,贴心的服务。

让您真正感受到我们的与众不同!