在DDS我的要求是什么,我有很多订阅者,但发布者是单身。我的订户从DDS读取数据并检查该消息是否针对该特定订户。如果检查成功,则只接收数据并从DDS中删除。消息必须在DDS中维护,直到经过身份验证的订户获取其数据。如何使用DDS(在java环境中)实现这一目标?
答案 0 :(得分:0)
首先,您应该注意到DDS
,Subscriber
永远无法从全局数据空间中删除数据。每个Subscriber
都有自己的分布式数据的缓存副本,并且只能对该副本起作用。如果一个Subscriber
获取数据,则同一Subscribers
的其他Topic
不会受到任何方式的影响。只有Publishers
可以为每个Subscriber
全局删除数据。从你的问题来看,目前尚不清楚你是否知道这一点。
独立于此,似乎使用ContentFilteredTopic
(CFT
)在这里是合适的。根据描述,Subscriber
知道它正在寻找的文件名。使用CFT
,Subscriber
可以表明它只对具有file_name
属性的特定值的样本感兴趣。基础结构将负责过滤过程,并确保Subscriber
不会接收具有属性file_name
的不同值的任何数据。因此,对take()
执行的任何DataReader
操作都将包含相关信息,无需先检查数据然后再接收数据。
API文档应包含有关如何使用ContentFilteredTopic
的更多详细信息。