何时使用OSGi EventAdmin而不是?

时间:2011-08-10 22:35:03

标签: event-handling osgi

我对OSGi EventAdmin服务的使用有一般性问题。我目前正在一个可能每秒生成数千个事件的环境中使用它。我担心EventAdmin服务可能是一个瓶颈。我从我的探查器得到的初步结果似乎支持这一点。我的问题是:

  1. 使用EventAdmin服务时是否有一般的经验法则?
  2. sendEvent和postEvent方法在性能方面有何不同?
  3. 是否有一个特定的OSGi容器已知具有低性能的EventAdmin实现?
  4. 提前感谢您的支持!

    干杯, 乔治

1 个答案:

答案 0 :(得分:6)

您是否了解有关瓶颈的更多信息?

我们对Event Admin规范进行了更新(请参阅[1]中的RFC 157)以帮助解决一些性能问题。但这还没有完成规范工作。

发送事件是同步发送,因此调用线程会阻​​塞,直到所有侦听器都被通知为止。大多数实现使用调用者线程。发布事件不会阻止调用者。它将另一个线程的工作排队以传递事件。当前的事件管理规范要求对异步事件进行排序,因此如果不需要排序,这可能会导致延迟。 RFC 157提供了不需要这种排序的能力。

我没有关于一个实现是否比另一个更好或更差的数据。

[1] http://www.osgi.org/Download/File?url=/download/osgi-4.3-early-draft2.pdf