我正在尝试在后端应用程序中实现微服务体系结构,我的服务之一从另一个服务接收一些数据,并将此数据存储在MySQL DB中,一个cronjob从DB读取此数据并将多个请求发送到另一个服务到完成一些工作,例如创建帐户,创建帐单信息等,所有这些请求都适用于数据库中的现有记录,我的问题是处理失败,该请求由于某种原因而可能会失败,如何设计数据库来处理失败和重试?
我应该创建多个列来处理状态吗? 像ACCOUNT_REQUESTED,ACCOUNT_CREATED_FAILED,account_create_failed_count之类的
答案 0 :(得分:0)
您应该只有一个列(而不是多个列)来维护状态,因为任何实体一次只能具有一个状态。 正如乌斯曼所说的;您可以根据业务逻辑使用重试逻辑等。 ..如果工作流程真的很复杂;也有一些开源解决方案;但是我不认为您的情况如此复杂...而且正如乌斯曼所说的那样;您可以使用诸如Kafka之类的消息传递解决方案使事情变得异步。