pushtechnology 扩散服务器中的流量控制延迟发布客户端更新
Flow control in pushtechnology diffusion server delaying publishing client updates
我们控制客户端通过针对不同主题的扩散每 2 秒向客户端发送 100 个更新,每个大小为 200-250 字节(每个主题在 2 秒内更新一次)。问题是在发送这些大约 20-30 分钟后,流量控制开始,并且由于流量控制,更新在 1-2 小时后从 5 毫秒延迟到 100 毫秒。扩散发布Control Client有没有办法避免流控?
maxqueuesize 设置为 10000
扩散 api 日志:压力=0.04622500000000004 => 休眠 4 毫秒
Flow Control 在 v5.1 的 Java 客户端和 v5.5 的 .NET 客户端中引入它的存在是为了防止内部队列溢出,否则会关闭客户端会话。这是一种暴露更深层次问题的症状。
它的发生有几个原因:
您的 Diffusion 服务器跟不上它的工作量。这种情况在一段时间后发生,这让我想知道您的服务器 JVM 是否花费了太多时间来收集垃圾。 Java Missions Control 很擅长回答这个问题。
我们很少看到这种影响具有双重角色的控制客户端,例如创建和更新主题,以及对 Missing Topic Notifications 等事件作出反应。流量控制是许多因素的函数,包括队列饱和度和未满足的请求数。如果是这种情况,请考虑为每个角色设置一个独立的会话。
先考虑并探索第一种更简单的可能性,然后再转向第二种。如果问题仍然存在,请通过 support@pushtechnology.com,
联系我们
马丁
我们控制客户端通过针对不同主题的扩散每 2 秒向客户端发送 100 个更新,每个大小为 200-250 字节(每个主题在 2 秒内更新一次)。问题是在发送这些大约 20-30 分钟后,流量控制开始,并且由于流量控制,更新在 1-2 小时后从 5 毫秒延迟到 100 毫秒。扩散发布Control Client有没有办法避免流控?
maxqueuesize 设置为 10000 扩散 api 日志:压力=0.04622500000000004 => 休眠 4 毫秒
Flow Control 在 v5.1 的 Java 客户端和 v5.5 的 .NET 客户端中引入它的存在是为了防止内部队列溢出,否则会关闭客户端会话。这是一种暴露更深层次问题的症状。
它的发生有几个原因:
您的 Diffusion 服务器跟不上它的工作量。这种情况在一段时间后发生,这让我想知道您的服务器 JVM 是否花费了太多时间来收集垃圾。 Java Missions Control 很擅长回答这个问题。
我们很少看到这种影响具有双重角色的控制客户端,例如创建和更新主题,以及对 Missing Topic Notifications 等事件作出反应。流量控制是许多因素的函数,包括队列饱和度和未满足的请求数。如果是这种情况,请考虑为每个角色设置一个独立的会话。
先考虑并探索第一种更简单的可能性,然后再转向第二种。如果问题仍然存在,请通过 support@pushtechnology.com,
联系我们马丁