在分布式系统环境中共享数据
Sharing data in distributed system environment
我有一个关于在分布式系统环境中共享数据的问题。
通常我使用场景 A,即。我正在将消息从系统 A 推送到远程队列,例如 Amazon SNS/SQS,我希望系统 B 在系统 B 启动且 运行.
时接收消息
我已经考虑过了,但我提出了一个我不确定是否足够好的替代方案。基本上,系统 A 现在将消息推送到本地队列,而本地队列将消息推送到系统 A。先决条件是系统 A 和 B 都已启动并且 运行 并且该队列仅针对系统 A,即。没有系统 C、D、E...将消息推送到 C、D、E 上某处的相同(重复)本地队列。
这是一个好的选择吗?
当远程队列不可用并且我不想丢失消息时,我也在考虑将场景 B 作为场景 A 的备份计划。在那种情况下,系统 B 将是一个远程队列。
好吧,方案 C 实际上是分布式消息传递应该采用的方式,并且已经实现了。这在异步通信中称为 outbox 模式。有一种模式用于弹性发布到事件总线。它非常像邮箱,您的邮箱将您的电子邮件保存在发件箱中直到发送。一点点调整是使用持久存储而不是本地队列。
但是您需要有工作人员来寻找待处理的消息,并在队列可用时立即发布它们。
您可以在此处找到有关此模式的更多信息。
我有一个关于在分布式系统环境中共享数据的问题。 通常我使用场景 A,即。我正在将消息从系统 A 推送到远程队列,例如 Amazon SNS/SQS,我希望系统 B 在系统 B 启动且 运行.
时接收消息我已经考虑过了,但我提出了一个我不确定是否足够好的替代方案。基本上,系统 A 现在将消息推送到本地队列,而本地队列将消息推送到系统 A。先决条件是系统 A 和 B 都已启动并且 运行 并且该队列仅针对系统 A,即。没有系统 C、D、E...将消息推送到 C、D、E 上某处的相同(重复)本地队列。
这是一个好的选择吗?
当远程队列不可用并且我不想丢失消息时,我也在考虑将场景 B 作为场景 A 的备份计划。在那种情况下,系统 B 将是一个远程队列。
好吧,方案 C 实际上是分布式消息传递应该采用的方式,并且已经实现了。这在异步通信中称为 outbox 模式。有一种模式用于弹性发布到事件总线。它非常像邮箱,您的邮箱将您的电子邮件保存在发件箱中直到发送。一点点调整是使用持久存储而不是本地队列。
但是您需要有工作人员来寻找待处理的消息,并在队列可用时立即发布它们。
您可以在此处找到有关此模式的更多信息。