【问题标题】:Guava eventbus memory limitGuava 事件总线内存限制
【发布时间】:2015-08-13 23:44:32
【问题描述】:

我用一个订阅者实现了一个单例EventBus。我的应用程序有很多生产者(任何请求都可以是生产者)。

@Bean
public EventBus eventBus() {
    EventBus eventBus = new EventBus();
    eventBus.register(new MyEventHandler());
    return eventBus;
}

我找不到如何为EventBus 设置事件数量限制(如何为EventBus 设置内存限制)以及如果产生的事件数量大于EventBus 会发生什么情况容量。

我希望EventBus 抛出异常以记录失败。

【问题讨论】:

    标签: java guava event-bus


    【解决方案1】:

    无需设置内存限制。这是安全的,因为EventBus 工作无状态。

    在单线程中,每次EventBus.post() 完成时,EventBus 都会清理事件队列,因此在单线程中是安全的。

    在多线程中,EventBus 为每个线程使用独立的事件队列。

    【讨论】:

    • 那么基本上队列限制就是服务器内存限制?它试图填充队列直到没有内存?你说的多线程EventBus是指AsyncEventBus吗?
    猜你喜欢
    • 1970-01-01
    • 2022-10-18
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多