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-mvc-3 – 如何在本地测试时禁用elmah发送电子邮件?
- asp.net – ConfigurationManager.AppSettings缓存
- ASP.NET Core知多少(7):对重复编译说NO -- dotnet watch
- asp.net – HttpError不会显示自定义错误页面
- Asp.net mvc将C#对象传递给Javascript
- asp.net-mvc – 在App_Code中的共享@helper中使用@Html
- ASP.NET状态管理在适当的情况下
- asp.net-mvc – ASP.NET MVC中的动态(运行时生成)窗体
- asp.net-mvc – ASP.NET MVC RememberMe
- asp.net-core – ASP.NET 5中的HandleUnknownAction
