我有一个云分布式数据库(AWS RDS - PostGres),其中包含一个sources
表。来源可以是网页或社交媒体帐户。
我在我的服务上有一个cron作业,它将遍历每个source
,并获得更新的信息,如评论或统计数据。
有时,如果满足特定条件,则可以触发另一个操作,例如,如果instagram帖子点击1000个赞,使用字符串进行评论,或者如果博客创建了新帖子,则向订阅者发送电子邮件。
我想通过docker和k8s横向扩展我的服务,如果我扩展到两个服务,将有两个cron作业,并且任何特定的操作都可以发送两次。我不希望为我扩展的n
实例发送n
电子邮件
处理这种情况的正确架构是什么?
发布于 2019-02-11 18:21:35
如果你想水平地扩展整个堆栈,可以通过一些合理的键(比如创建日期)将你的域分成N个分区,并且每个分区都是一个完整的堆栈。
如果您关心可伸缩性,那么您可能希望将堆栈划分为多个层(源刷新工作程序、操作处理程序等),通过工作队列连接在一起,以便任何特定的操作都可以独立扩展……但我会先从一个直域分区开始。
https://stackoverflow.com/questions/54635767
复制