asp.net – 多数据库同步 – 带消息背板的SignalR
问题
我的申请表如下: >多个(< 20)设备客户端(Android)在单个位置运行. 到目前为止,该应用程序是一个非常标准的应用程序,具有移动设备客户端和Web门户客 但是,由于每个设备客户端的要求不受我的控制(设备客户端需要在脱机模式下运行,减少网络延迟等),因此每个设备客户端都不使用服务器数据库作为其直接记录源.每个设备客户端都有自己的本地数据库(SQLite),该数据库与其所在位置的所有数据保持同步.例如:当我在设备客户端A上进行数据更改时,需要将该更改传播到设备客户端B和Web门户客户端C. > Web门户客户端直接从服务器数据库读取,因为它不需要脱机功能. 正如您所看到的,这里的问题是我们现在需要一种方法来使所有设备客户端数据库实时保持同步.预期两个设备客户端之间的数据短暂延迟并且认为是可以的. 提出的解决方案 我提出的解决方案如下: >当新的客户端设备最初联机时,它会收到自上次从服务器通过REST API上线以来错过的数据转储. 下图说明了此解决方案: >大块描述服务器(灰色方块是可以水平缩放的HTTP Web服务器) 问题 > SignalR是解决此问题/解决方案的正确技术吗?最初我的解决方案涉及每个客户端设备建立自己的Azure Service Bus队列/订阅,该队列/订阅从数据库拖尾工作者(sync river)收集消息.该解决方案的问题在于,我会将大量浪费的消息推送到离线设备客户端,这些客户端可能不会在很长一段时间内重新联机,如果有的话.通过在设备客户端最初联机时转储增量数据,然后通过SignalR流式传输数据,我可以解决这个问题. 您也欢迎并赞赏您对此解决方案的一般意见和建议. 解决方法
您需要在设备上线时与设备进行实时通信.最有希望的方法之一是使用Web套接字.
>使用网络套接字本身并不实用,因此很受欢迎 但维持SignalR等自托管实时解决方案需要付出代价.信号通信的通信成功率不高,您必须实施各种监控机制和故障转移流程.地理分布也不受支持.因此,解决所有提及问题的高可靠性实时系统的下一个选择是托管服务,例如pub-nub. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET:公开Web用户控件的控件
- asp.net-mvc – 没有CreateMap的简单转换时的Automapper错误
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- asp.net – 将HTML5占位符文本添加到文本框.net
- 为什么ASP.NET抛出这么多异常?
- asp.net-mvc – 视图模型和数据传输对象之间的区别是什么?
- asp.net-mvc-4 – 编辑并继续不在Windows 7,32位操作系统上
- asp.net mvc – asp.net mvc decorate [Authorize()]与多个
- 如何保护经典ASP ASPSESSIONID cookie?
- asp.net – 如何使用JWT对角度SPA的Web Api 2进行用户身份验
- asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同
- 实体框架 – 如何添加外部参考ASP.Net MVC 5身份
- asp.net-mvc-3 – 为MVC3应用程序配置Ninject的正
- Visual Studio 2017下ASP.NET CORE的TagHelper智
- 如何在Web项目中给没有添加API核心组件添加APICo
- 用例子看ASP.NET Core Identity是什么?
- asp.net-mvc-3 – Asp.net mvc 3-获取当前控制器
- 使用ASP.NET webAPI上载文件(最大文件大小为10Mb
- asp.net-mvc – RedirectToAction重定向查询参数
- asp.net-mvc-3 – 以下部分已定义,但尚未为布局页