我想知道我是否可以在我的软件中放入大量数据,或者我是否有义务使用外部解决方案。
使用OpenSplice DDS或RTI的DDS的持久性可以提供多少数据?
答案 0 :(得分:4)
这取决于您对“持久数据”的定义'。 在OpenSplice-DDS中,有多种方法可以保存'非易失性数据通过“持久化”来实现它在一些非易失性媒体上。第一种方法是将数据发布为PERSISTENT(耐久性-QoS)并结合具有一个或多个持久性服务(在OpenSplice核心[LGPL-v3]中可用的标准',即不是可选的) /商业特色)。启动系统时,耐久性服务(通常是第一个启动的节点)会将持久数据注入“全局数据空间”。并且它可用于每个应用程序(可以阻止通过wait_for_historical_data API注入此信息)。持久数据大小的一个典型限制是可用内存的大小以保持持久数据的大小。一旦发布(或放入DDS_terminology:为耐久性服务'指定的资源限制,以max_samples表示,max_samples_per_instance和max_instances表示每个持久性主题)。请注意,您可以将数据作为TRANSIENT数据的子集进行PERSISTENT,如果您配置了多个持久性服务,这些数据将会对齐'彼此在启动时(和/或添加一个也配置了持久性服务的新节点),导致此PERSISTENT数据在应用程序启动和/或加入已经运行的系统时立即可用。
第二种方法是利用一个透明地复制'的附加组件。 DDS与DBMS(ODBC 3.0兼容)系统之间的(双向)数据。 OpenSplice DDS为这个名为“DBMSConnect”的服务提供可插拔服务。它可以配置为在两个方向上转发数据,基于事件或基于状态(下采样)以及可能对内容进行过滤。
第三种方式(对于OpenSplice)是使用名为“OpenSplice Gateway'”的通用网关产品。它利用了Apache Camel,从而实现了所有的连接器和#39;适用于该基础架构。在这里,您可以定义'路线'和端点,允许您的DDS数据路由到80多种非DDS技术,包括关系数据库系统,然后允许这些系统持续存在'您的DDS信息。
希望这有所帮助,
-Hans