共享节点队列

ffdz8vbo  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(353)

我正在用java构建一个代理服务器。此应用程序部署在docker容器中(多个示例)
以下是我的工作要求。
客户端向我的代理服务器发送http请求
代理服务器按照接收到的顺序将这些请求转发到目标节点服务器。
当目标不可到达时,代理服务器存储这些请求,并在将来可用时转发它。
同样,当请求失败时,请求将在“x”时间后重新尝试
我实现了一个基于节点的队列植入(hash map-(key)node name-(value)reachability status+按接收顺序排列的请求队列)。
当只有一个示例时,上述解决方案效果良好。但我想知道当有多个示例时如何解决这个问题?有没有什么共享数据结构可以用来解决这个问题。activemq、redis、kafka之类的东西(我对共享内存/处理非常陌生)。
任何帮助都将不胜感激。
提前谢谢。阿杰

a7qyws3x

a7qyws3x1#

kafka有一个基于jetty的开源rest代理,您可以从中获得一些实现思想。
https://github.com/confluentinc/kafka-rest
此代理不存储消息本身,因为kafka集群对于写入非常可用,并且通常至少有3个kafka节点可用于消息持久性。代理中的kafka客户机可以配置为在集群暂时无法写入时重试。

相关问题