event-handling - 何时使用 OSGi EventAdmin,何时不使用?

标签 event-handling osgi

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

  • 何时使用 EventAdmin 服务是否有一般的经验法则?
  • sendEvent 和 postEvent 方法在性能方面有何不同?
  • 是否有已知的特定 OSGi 容器具有低性能的 EventAdmin 实现?

  • 在此先感谢您的支持!

    干杯,
    乔治

    最佳答案

    你有关于你看到的瓶颈的更多信息吗?

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

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

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

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

    关于event-handling - 何时使用 OSGi EventAdmin,何时不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018762/

    相关文章:

    c# - 我可以确定 KeyEventArg 是字母还是数字吗?

    events - 我们应该将事件存储在数据库中吗? (事件驱动设计)

    javascript - JQuery 点击事件多次触发

    reactjs - 在React中,使用函数式组件时如何记住内联函数?

    c# - c# 中的事件处理程序和应用程序生命周期对象——我应该取消 Hook 吗?

    java - OSGi 对于模块化 Web 项目来说是否过大?

    java - Spring Integration 代理网关上的入站转换器

    java - 如何以编程方式查询 p2 存储库中的信息和工件?

    java - websphere liberty - SLF4J jar 与 websphere 内部包冲突

    java - 如何使用 Maven Bundle Plugin (BND) 从另一个依赖项中存在的依赖项中排除指定包?