【问题标题】:How to share chronicle queue between multiple micro services in AWS如何在 AWS 中的多个微服务之间共享编年史队列
【发布时间】:2021-08-19 20:45:17
【问题描述】:

我们为我们的一个系统使用了一种微服务方法,使用 Kafka 作为事件总线。 我们遇到了一些延迟问题,并尝试用一堆 Chronicle 队列替换 Kafka 主题。在开发人员机器上本地运行时,结果令人惊叹,我们最昂贵的工作流程之一是处理速度提高了 10 到 30 倍。

鉴于最初的良好结果,我们决定进一步进行实验,并将我们的概念证明部署在我们系统运行的 AWS 中。我们的微服务在多个 EC2 的 docker 容器中运行。

我们创建了一个 EFS 卷并将其安装在每个 docker 容器上。我们验证了每个微服务都可以访问该卷,并授予了正确的读写权限。

现在的问题: MS1 接收消息(API 调用)进行一些处理并在编年史队列中发出事件。我们可以在 EFS 文件系统上看到编年史队列文件被触摸。 MS2 应该使用该事件并进行一些进一步的处理。这没有发生。最终重新启动 MS2 会触发消息处理,但情况并非总是如此。很容易想象失望。

问题: 我们的 EFS 方法错了吗?如果是,那该怎么走?

提前感谢您的意见。

【问题讨论】:

    标签: java chronicle-queue


    【解决方案1】:

    Chronicle Queue 无法在 EFS 之类的网络文件系统上运行,如 previous question 中所述,并在此处记录:https://github.com/OpenHFT/Chronicle-Queue/#usage

    要在主机之间进行通信,您需要支持 TCP/IP 复制的 Chronicle Queue Enterprise。

    另请注意doco for running with docker

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 2022-01-03
      • 2016-03-28
      • 2019-08-19
      • 2017-05-27
      • 2016-07-30
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多