首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在互联网连通性差的情况下脱机数据事务处理能力

在互联网连通性差的情况下脱机数据事务处理能力
EN

Software Engineering用户
提问于 2013-08-27 07:20:53
回答 3查看 613关注 0票数 1

我们有一个核心银行产品开发与ASP.NET与C#使用2008数据库。产品托管在集中式服务器上,并且在连接良好和稳定的所有位置(银行分支机构)运行良好。

我们需要在连接性始终是一个问题的地区实现这一解决方案。由于它是一个核心银行解决方案,因此不应该因为技术问题(即连接性)而导致任何服务失效。

如何设计这方面的体系结构,并确保在任何给定时间点不存在事务问题,同时集中数据库包含来自所有分支的最新数据?

EN

回答 3

Software Engineering用户

发布于 2013-08-27 12:37:07

如何设计这方面的体系结构,并确保在任何给定时间点不存在事务问题,同时集中数据库包含来自所有分支的最新数据?

简而言之:对于分支之间严重的网络连接问题,不可能有一个实时的解决方案。

然而,作为一种折衷的解决方案,当网络连接稳定时,您可能会在中央数据库/存储库上出现夜间的“数据同步过程”。缺点是在中央数据库中有一个为期一天的信息。对于报告目的来说,这仍然是一个很好的解决方案,但是对于transactionl实时解决方案来说,这是不够的。

作为一种额外的思考,您可以考虑分布式排队方法,因为它会在连接丢失或不稳定的情况下将请求堆积到主中心服务器。一旦网络连接起来,它就会按顺序发送它们。

总的来说,这需要一种折衷方案,而不是解决存在连接问题的系统的实时解决方案。

票数 1
EN

Software Engineering用户

发布于 2013-08-27 14:15:18

除了可能设计一夜同步进程之外,另一种选择可能是使用分布式队列方法。也就是说,当连接下降时,分支站点上的队列可以排队,而当连接停止时,这些请求可以由接收系统去排队。这篇文章提供了相当好的概述。有许多支持此功能的产品/项目--一些可能性包括Apache ActiveMQRabbitMQMSMQ。在这种情况下,MSMQ可能是最相关的。

从前端应用程序的角度来看,您需要为这种异步操作进行设计。也就是说,当事务放在队列上时,应用程序需要考虑事务的完成,并且假设队列是完全可靠的。

至于中心位置,在网络可用性的情况下,它将始终拥有可用的最新信息,这取决于处理排队请求所需的时间所带来的任何滞后。如果网络不可靠,这是在最近的信息方面所能做的最好的事情。

除了处理网络连接之外,这类异步队列可能由于一系列原因而有用,并且是一种有用的模式。例如,它可以有效地平滑一个系统的负载,该系统服务于多个不需要立即响应的请求者的工作。在这种情况下,“服务器”不需要在加载时处理所有负载,这样您就可以更有效地利用资源,而不是指定服务器来处理“高峰”负载,而大多数情况下都处于空闲状态。

票数 0
EN

Software Engineering用户

发布于 2013-08-27 16:49:28

我不知道它是否满足了您对实时事务的需求,但您可能需要考虑使用Server复制。

您可以在远程位置运行Web服务器和Server。那里的用户将连接到该实例。使用复制,Server将使两个位置之间的数据保持同步。如果连接下降,SQL Server将在连接再次可用时处理对齐数据。

在不了解所有需求或访问Server许可证的情况下,我不能保证这是对您最好的解决方案。但这可能是你想要调查的。

如果它满足您的需要,它将是一个不需要任何额外开发的解决方案。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/209581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档