【问题标题】:BlazeDS Polling Interval set to 0: Unwanted side-effects?BlazeDS 轮询间隔设置为 0:不需要的副作用?
【发布时间】:2011-04-05 01:53:54
【问题描述】:

tl;dr:将轮询间隔设置为 0 极大地提升了我的性能,但我担心可能会出现问题。

在我的应用程序中,我正在从我们的 java 服务器到我们的 flex 客户端进行大量发布,发布各种主题和子主题。

最近,我们在系统范围内进行了一轮性能改进,而消息传递层被证明是一个很大的瓶颈。

几分钟前,我发现将 services-config.xml 中的 属性设置为 0 会导致发布的消息(即使有很多消息)几乎立即被客户端识别, 而不是 polling-interval-millis 的默认值 3 秒延迟,这显然产生了巨大的影响。

所以,我对目前的表现非常满意,唯一的问题是,我对这种变化造成的意外副作用有点紧张。特别是,我担心我们的 Flash 客户端速度变慢,以及太多不需要的流量。

我的初步测试并没有证实这种担忧,但在我将更改提交到我们的存储库之前,我希望有这方面经验的人能加入。

【问题讨论】:

    标签: java apache-flex blazeds publishing


    【解决方案1】:

    很遗憾,您的问题太笼统了……没有办法得到具体的答案。我会在下面写一些想法,也许它们会有所帮助。

    将值从 3 减少到 0 意味着您接收新数据的速度更快。如果您的 Flex 客户端使用这些数据来进行复杂的计算,则可能会减慢您的客户端或显示过时的数据(这是一种已知模式,请参阅http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/WS3a1a89e415cd1e5d1a8a18fb122bdc0aad5-8000Update.html)。您需要了解数据是如何处理的,并且可能需要进行一些客户端基准测试。

    服务器还必须处理更多的请求,最好确定每秒可以处理的最大请求数是多少。为此,您将需要使用 Jmeter 之类的工具来检测系统的最大容量,之后您可以进行一些计算,试图找出在将间隔从 3 减少到之后每秒将有多少请求0,考虑到客户数量以每月 10% 的速度增长等。

    主要思想是您应该对某些 API 进行一些性能测试并保存脚本,以便查看您未来的修改是否会过多地降低系统速度。如果没有这个,很难猜测是否可以更改配置参数。

    【讨论】:

    • 我很清楚我的问题很笼统(也是?),我非常感谢您给了我一些考虑。
    【解决方案2】:

    您可能想尝试长轮询。对于我们的 Weblogic 服务器,除非我们让轮询请求持续 5 分钟,否则我们不会遇到任何问题,因此我们将其保持为 4,然后在重新开始之前让它休息 1 秒。我们总共有几百个用户,全天有 60-70 个硬核用户。要记住的是,您基本上是将间歇性用户请求转变为几乎总是连接的 telnet 会话。根据您的用户使用的浏览器,这也可能会产生影响,但总的来说我们非常满意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2021-06-16
      相关资源
      最近更新 更多