我想知道我是否可以在软件中放入大量数据,或者我是否必须使用外部解决方案。
使用OpenSplice DDS或RTI的DDS的持久性,我可以放入多少数据?
这取决于您对"放置持久数据"的定义。在OpenSplice DDS中,有多种方法可以通过在某些非易失性介质上"持久化"来"保存"非易失数据。第一种方法是将数据发布为PERSISTENT(耐久性QoS),并结合一个或多个耐久性服务(这是OpenSplice核心[LGPL-v3]中的"标准"服务,即不是可选/商业功能)。启动系统时,持久性服务(通常是启动的第一个节点的持久性服务)将把持久化数据注入"全局数据空间",并将其用于每个应用程序(这些应用程序可以阻止通过wait_for_rhistorical_data API注入这些信息)。持久性数据大小的一个典型限制是发布后"保存它"的可用内存大小(或放在DDS_terminary中:为"持久性服务"指定的资源限制,以每个持久性主题的max_samples、max_samples_per_instance和max_instances表示)。请注意,您可以将PERSISTENT数据作为TRANSIENT数据的子集,如果您配置了多个持久性服务,这些服务将在启动时相互"对齐"(和/或添加一个也配置了持久性服务的新节点),从而在应用程序启动和/或加入已经运行的系统时,此PERSISTENT数据可以立即可用。
第二种方法是使用一个插件,在DDS和DBMS(ODBC 3.0兼容)系统之间透明地"复制"(双向)数据。OpenSplice DDS为此提供了一个名为"DBMSConnect"的可插拔服务,该服务可以配置为在两个方向上转发数据,无论是基于事件还是基于状态(下采样),还可以潜在地过滤内容。
第三种方法(对于OpenSplice)是使用名为"OpenSplice网关"的通用网关产品,该产品利用Apache Camel,从而使用该基础设施可用的所有"连接器"。在这里,您可以定义"路由"和端点,允许您的DDS数据路由到80多种非DDS技术,包括关系数据库系统,然后允许"持久化"您的DDS信息。
希望这能有所帮助,
-Hans