【问题标题】:shared node wise queue共享节点明智队列
【发布时间】:2017-10-30 01:21:12
【问题描述】:

我正在使用 Java 构建代理服务器。此应用部署在 docker 容器中(多个实例)

以下是我正在处理的要求。

  1. 客户端向我的代理服务器发送 http 请求
  2. 代理服务器按照收到的顺序将这些请求转发到目标节点服务器。
  3. 当无法到达目的地时,代理服务器会存储这些请求并在将来可用时转发它。
  4. 同样,当请求失败时,请求将在“X”时间后重试

我实现了一个节点明智的队列植入(哈希映射 - (键)节点名称 - (值)可达性状态 + 请求队列按接收顺序)。

当只有一个实例时,上述解决方案效果很好。但是我想知道当有多个实例时如何解决这个问题?有没有我可以用来解决这个问题的共享数据结构。 ActiveMQ、Redis、Kafka 之类的(我对共享内存/处理非常陌生)。

任何帮助将不胜感激。

提前致谢。 阿杰

【问题讨论】:

    标签: data-structures apache-kafka activemq shared


    【解决方案1】:

    有一个基于 Jetty 的 Kafka 开源 REST 代理,您可能会从中获得一些实现想法。

    https://github.com/confluentinc/kafka-rest

    此代理本身不存储消息,因为 kafka 集群对写入具有很高的可用性,并且通常至少有 3 个 kafka 节点可用于消息持久性。可以将代理中的kafka客户端配置为集群暂时无法写入时重试。

    【讨论】:

    • 感谢您的意见,让我试一试
    猜你喜欢
    • 2013-04-22
    • 2013-04-04
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2020-05-10
    • 2016-01-13
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多