【问题标题】:XMPP, sending one message to thousands of jabberIDs - jabber ends up sending it to only a random part of selected group of JIDsXMPP,向数千个 jabberID 发送一条消息 - jabber 最终仅将其发送到所选 JID 组的随机部分
【发布时间】:2014-09-01 12:47:51
【问题描述】:

我们有一个“超级用户”帐户,用于向选定的 JID 发送消息。假设我们已经选择了我们想要向其发送消息的那些,并且我们得到了大量的用户 JID(此时为 20k)。我们在后台运行了一个守护进程,一次向每个用户发送一条消息,在发送 2000 条消息后停止一分钟(限制为 2500 条/分钟)。我们使用 xmpp4r 作为处理发送消息的客户端。每个用户都有相同的@xmpp.address。 <body> 在每条消息中都相同。

我们的 tigase 日志(因为这就是我们正在使用的)显示消息确实确实到达了 jabber 服务器,并且一次一个地发送给了适当的用户。

我们遇到的问题是,尽管一切看起来都很好,但实际上只有一部分用户收到了消息。 (例如,在某一时刻,考虑到发送了 100 条第一条消息 - 1..20 和 91..100 已传递,中间的 70 条根本没有传递),我们同时改进了几件事,但这仍然可能是一条线索。

我们尝试创建一个包含 10000 个重复 JIDS 的数组(几个用户的 jid 重复了数千次),并且每条消息都被传递(并且以正确的顺序)。

我们已经花了几天时间尝试不同的场景,并且开始想不出可能会出现什么问题。

知道我们可能遗漏了什么吗?

【问题讨论】:

    标签: ruby-on-rails xmpp tigase xmpp4r


    【解决方案1】:

    我是 Tigase 团队的成员。首先,我建议使用我们的在线论坛,因为这是我们通常回答问题的地方。我们可能看不到此处发布的问题。

    无论如何...

    您的帖子中没有包含一些细节。

    1. 您连接什么以及如何连接?通过标准 XMPP 连接、通过 Bosh 还是其他方式?
    2. “重复的 JID”是什么意思?您是如何复制 JID 的?
    3. 测试期间发消息的用户都是在线的吗?
    4. 如果您可以在 Tigase 日志中看到消息,您还应该看到它发生了什么。它是否已提交到网络套接字以传递给客户端?
    5. 您使用了哪种硬件?服务器是否有可能超载并简单地丢弃了一些消息?如果您谈论 100 条消息而其中 70 条未送达,这似乎不太可能。
    6. 您如何真正知道消息未送达,并且您确定当时客户端/用户已连接?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2011-05-11
      • 2013-12-21
      • 1970-01-01
      相关资源
      最近更新 更多