首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google云运行容器之间共享事件的最佳方式是什么?

在Google云运行容器之间共享事件的最佳方式是什么?
EN

Stack Overflow用户
提问于 2022-08-01 18:08:03
回答 1查看 82关注 0票数 0

我有一个在许多云运行容器上运行的服务。

当单个容器(A)接收到一个web请求来完成某些工作时,我需要所有其他活动容器从elasticsearch获取一些更新的数据。

我原以为ES会有一个“监听”类型的连接,如防火墙,但这是不可能的。

现在,我必须从每个服务中轮询数据库。

在使用云运行时,是否有更好的方法来实现这种跨容器同步?酒吧/潜艇是这里最好的解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-02 15:09:10

这是不寻常的,但并非不可能实现。

首先,您必须了解实例生命周期:只有在处理请求时才分配CPU。否则,CPU是节气门(低于5%)。这也是因为您只在处理实例时支付,而不是当实例保持温暖时(并在一段时间后卸载)。

尽管如此,在没有处理请求的情况下,在后台更新实例是完全无用和低效的。

因此,我们的想法是在实例接收到请求时执行一些操作。不好的是,这个解决方案会增加请求延迟(实例开始同步缓存,然后处理请求)。

最后,解决方案是在某个地方存储最新的缓存更新。在你的例子中,你必须保留同样的信息。当实例接收到请求时,首先,它会将自己的缓存日期与中央数据日期进行比较。

如果是相同的

  • ,则继续处理。如果中心数据日期是当前实例日期之后的
  • ,则更新实例数据,然后处理请求。

例如,您可以将数据和该数据的日期存储在Firestore、MemoryStore或任何其他数据库中。

PubSub也可以是一个解决方案,但更复杂的实现。每个实例,当它们开始创建一个主题的拉订阅。当该实例被杀死时,您必须删除该订阅。

然后,当请求传入时,您的实例必须提取订阅,并获取消息(如果有的话),并更新他的本地缓存。

可能比以前的解决方案更快,但更难实现。

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

https://stackoverflow.com/questions/73197870

复制
相关文章

相似问题

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