我们目前正在Java项目中实现发布/订阅,我有一个问题,即发布对象应该存在多久.
大多数教程都相对简单,只是展示了以下模式:
- 调用发布方法
- 在创建发布者方法中
- 发送一两条消息
- 关闭出版商
这就是我们所复制的,一个以Message为参数的send()
方法,为每条消息创建和关闭Publisher
.
我们观察到,性能远远低于我们的预期(每秒30条消息).
现在我们正在考虑是否必须更改旧代码以允许成批发送消息,或者我们是否应该在服务处于活动状态的整个时间内保持发布者打开,或者可能将其保留在某个时间到期的缓存中.
为每条消息创建并关闭Publisher
是一种正常模式,还是应该让发布者活得更久?让Publisher
在整个服务运行期间保持打开状态是可以的,还是会导致资源问题?