我对正确的方法或在创建单独的集线器与在集线器内创建单独的组时要考虑的决定因素有些困惑。
在我的应用中,有 2 种情况正在使用 pub sub:
- 多个用户可以访问相同的数据。为了避免一个用户覆盖另一个用户所做的更改,我们使用锁定机制,以便只有一个用户可以在我的给定点编辑数据。如果用户正在查看的数据被锁定,Pub sub 会通知用户。
- 我们有一些长期运行的报告生成过程,我们使用 pub sub 来获取长期运行过程的状态更新
我们目前为整个应用程序创建了单个集线器(“MY-APP-HUB”),并且为这两个用例创建了单独的组“LOCK-DATA-[IDENTIFIER OF THE DATA]-GROUP”和“REPORT-[报告的标识符]-组”。运行良好,没有问题。
但是我想知道是否应该为每个操作创建单独的 HUB,例如“LOCK-DATA-HUB”和“REPORT-HUB”,然后为每个数据单元创建单独的组。因此,例如在“LOCK-DATA-HUB”中,为“REPORT”创建一个组“DATA-1-GRP”、“DATA-2-GRP”,类似地“REPORT-1-GRP”、“REPORT-2-GRP” -中心”。
老实说,我不确定我做事是否正确。一方面,让与应用程序关联的所有消息都通过集线器对我来说很有意义,并且只管理单个令牌更简单。
但是为每个操作/功能创建中心也不错。我在这里唯一担心的是,如果多个应用程序共享相同的 pub sub 有类似的操作,但可以通过在我想的集线器名称中添加一些应用程序标识符来避免这种情况。