只有一个微服务在自动缩放组中执行后台任务

时间:2016-12-17 01:57:38

标签: architecture microservices

我有一个相当简单的微服务,它从MongoDB集群读取数据,进行一些数据转换,并通过REST API公开数据。我需要使用cron作业更新独立持久性数据存储区。我可以创建一个单独的应用程序来更新数据集,但是更容易部署AWS自动扩展组中存在的一个应用程序(这适用于有大量繁文缛节用于发布新应用程序的大型企业),并且有一个实例通过后台作业更新数据集。

通过DB中的字段锁定对DB的写入是一种可行的解决方案,但看起来像是反模式。有没有更好的方法来创建一个单独的应用程序来进行数据库写入?

1 个答案:

答案 0 :(得分:1)

  

有没有更好的方法来做到这一点,而无需创建单独的   应用程序进行数据库写入?

我认为创建或不创建新应用程序是一个小问题。这取决于您的架构。如果你开发了一个微服务,你可能想要隔离并从中删除所有可能使它不再制造单一的单一的东西。至少我会这样做。现在将所有内容保存在一个应用程序中看起来似乎更容易,但是一旦您的代码库和功能大大增加,我就不那么容易了。

在这种情况下困扰我的问题是独占数据库锁定。避免所有成本的独家数据库锁定。忘记所有事情,放弃所有任务,找到计算统计数据的方法,而无需锁定数据库。相信我,无论你现在花费多少时间开发解决方案,都将在未来得到回报。

如果你选择在Stack上提出这个问题,我很乐意提供帮助,但是为了提出建议,我们需要更多地了解你存储/汇总的逻辑和数据。