gpt4 book ai didi

java - 如何实现每个客户端一个消息队列?

转载 作者:行者123 更新时间:2023-12-01 04:39:11 28 4
gpt4 key购买 nike

我目前用 java 实现了一个点对点消息应用程序。目前我被一个问题困住了。在我的应用程序中,我想要一个消息队列,该消息队列将驻留在每个对等点中,而想要与其他对等点进行通信的其他对等点实际上会继续并在其他对等点 MQ(消息队列)中写入消息。

对于例如。 A 和 B 是网络中两个不同的对等点/节点。

现在 A 想要向 B 发送一条消息,然后它继续将其消息写入 B 的队列。 B 将继续从它自己的 MQ 中拉取消息。

我不知道使用什么 Java 库可以轻松地让我实现这一点。

我对此进行了很多搜索,但从未找到合适的解决方案。

任何人都可以建议我一种实现此目的的好方法吗?

最佳答案

从 A 到 B 发送消息的物理方式非常简单,只需打开套接字或使用非阻塞网络库,例如 NettyApache Mina 。两者都提供了在其堆栈顶部实现网络通信的几个示例。

您可能需要决定网络拓扑结构,如果只有 2-3-4 个对等点连接,您可以简单地让每个对等点为其他每个对等点提供一个开放套接字。

如果预计有很多对等点,则为每个对等点拥有一个套接字将很困难甚至不可能,并且需要不同的拓扑:

  1. 每个对等点仅了解其几个邻居,可以通过使用某种路由逻辑在对等点之间跳转来访问其他对等点。
  2. 另一个解决方案是拥有一个集中节点,所有对等方都可以在其中 checkin (这就是 Skype 或大多数其他 IM 网络的工作方式)。

关于java - 如何实现每个客户端一个消息队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16872208/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com