首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在分布式系统中确保单次交付?

如何在分布式系统中确保单次交付?
EN

Stack Overflow用户
提问于 2017-03-18 16:40:13
回答 1查看 36关注 0票数 0

我有一个分布式电子邮件传送系统,定期发送电子邮件到一个地址列表,在特定的日期和时间。

我有一堆服务器轮询数据库,等待合适的时间发送电子邮件。

如何确保这些服务器不会在同一时间向同一客户发送相同的电子邮件?我必须在这里创建某种分布式锁定机制吗?有没有更好、更有效的方法呢?如果没有,推荐的实现这种分布式锁的最佳实践是什么(我当前的堆栈是node.js + postgres)

EN

回答 1

Stack Overflow用户

发布于 2017-09-23 16:51:54

好吧,一种可能的解决办法是,在(主题+时间+任何东西)的散列上使用一致的散列,并且如果它不是正确的轮询工作人员,则不执行任务。

分布式锁本身效率很低,很难扩展,但我的意思是,你可以看看lamports面包房,令牌环传递网络,除了胖乎乎的,所有这些在活跃度方面都是狗屎,胖乎乎的实现起来也很棘手,你也可以有一个轻量级的quorum,但效率也不高。

TLDR,一致性哈希,可能是聪明的方式,或者说实话,我不明白为什么你没有一个轮询器,它只是将所有的工作转发给一个负载均衡器,它将以预定的方式分发工作。

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

https://stackoverflow.com/questions/42872221

复制
相关文章

相似问题

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