首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >处理数据库应用程序中网络故障的处理方法?

处理数据库应用程序中网络故障的处理方法?
EN

Software Engineering用户
提问于 2019-05-06 13:53:55
回答 1查看 88关注 0票数 1

我有一个将数据写入数据库的应用程序。如果发生网络故障,到数据库的连接就会丢失& my查询会冻结整个应用程序。

因此,为了使其异步,我使用了消息队列机制将"db查询“部分与”核心应用程序部分“分开。

问题是,在数据库恢复联机之前,所有平均时间生成的数据都会丢失。

什么样的软件设计可以帮助解决这个问题?

EN

回答 1

Software Engineering用户

发布于 2019-05-07 06:11:23

问题的核心是,通过引入异步消息队列,如果db查询开始失败,应用程序将不再获得即时反馈(如异常消息)。我基本上看到了处理这个问题的两个概念选项:

  • 当放入消息队列的操作失败(如数据库写入操作)时,确保队列将每个失败操作的错误消息发送回应用程序,以便应用程序能够处理此操作。
  • 或者,如果您确实知道这些网络故障只是暂时的,那么让队列来处理这个问题。例如,可能会添加一个本地缓冲区--队列(可能利用一些本地持久存储),它足够大,足以存储最大预期中断时间间隔下的预期消息数。

即使是第二种方法,通知应用程序网络停机时间也是个好主意(通过异步消息/信号)。也许它可以切换到类似于“脱机”模式,停止生成更多的消息,这样MQ的本地缓冲区就不会被重载。

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

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

复制
相关文章

相似问题

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