fastdds router-3.开始
1. 项目概述
DDS路由器是由eProsima开发的跨平台非图形化应用程序,由Fast DDS提供支持,允许创建一个通信桥,连接两个DDS网络,否则将被隔离。DDS路由器的主要用途是通信两个物理或虚拟分离的DDS网络,这些网络属于不同的LAN,允许每个网络的实体模糊地发布和订阅本地和远程主题。
DDS路由器是一个内部运行参与者的应用程序,参与者是DDS域参与者的抽象。这些参与者中的每一个都是一个通信接口,是特定DDS网络配置的“门”。这些参与者允许应用程序同时连接到不同的DDS网络。每当这些参与者中的一个从其所连接的DDS网络接收到消息时,他们将通过其他参与者转发数据和消息源。DDS路由器配置及其操作主题取决于初始DDS路由器配置。
以下模式表示DDS路由器本地用例。此场景显示了由于传输协议(UDP、TCP等)、发现协议(简单、发现服务器等)或每个DDS实体使用的DDS域Id而彼此隔离的不同DDS网络。将DDS路由器配置为具有4个不同的参与者,每个参与者配置为一个独立的DDS网络,将在内部创建4个参与者。到达其中一个参与者的所有数据将通过其他参与者转发,从而允许所有机器彼此连接,而不受其不同配置的影响。该数据传输将在不复制数据的情况下完成,因为所有参与者将共享分配数据的指针,成功实现零复制通信机制。
1.1. Wan通信
要实现在不同LAN中工作的两个网络的WAN通信,需要在每个LAN上运行DDS路由器应用程序。部署的DDS路由器将通过WAN使用DDS相互通信,并将在LAN中接收的每个消息路由到远程DDS路由器。一旦远程路由器接收到数据,它就会将数据传输到所连接的本地网络。这样,两个DDS网络的行为就好像它们属于同一个LAN。
另一个重要特征是WAN通信不限于一对DDS路由器。可以使用eProsima发现服务器发现机制(非多播网络上的动态发现)来执行WAN通信。因此,连接到相同发现服务器的任何DDS路由器都将作为标准DDS节点工作,发布和订阅共享的DDS主题。这允许创建一个无限制且高度可扩展的分散分布式DDS网络。
1.2 用法描述
DDS路由器是一个终端(非图形化)应用程序,只要DDS网桥正在运行,它就会创建DDS网桥。YAML格式的配置非常直观,易于阅读。整个应用程序被认为是用户友好的,遵循面向用户的设计。
- Run. 为了运行DDS路由器应用程序,只需要特定配置的YAML配置文件(请参阅一节以检查如何配置DDS路由器)(请参阅第节以检查应用程序支持的参数)。
- Interact. DDS Router应用程序运行后,只需更改YAML配置文件即可在运行时更改此通信中涉及的主题(有关重新配置正在运行的DDS Router的更多详细信息,请参阅“重新加载主题”一节)。
- Stop. 要停止DDS路由器,只需向进程发送^C信号,它就会优雅地关闭整个应用程序(有关如何关闭应用程序的详细信息,请参阅关闭应用程序一节)。
1.3 常用用例
DDS路由器可以应用的不同情况非常不同,并且随着未来版本中添加新的参与者类型,这种情况会增加。这些是迄今为止最常见的用例:
2. 用法示例
本示例将作为一个实践教程,旨在介绍eProsima DDS路由器提供的一些关键概念和功能。
两个不相交的DDS网络将通过一对路由器桥接,允许在每个网络上托管的端点之间进行连接。特别是,两个ShapesDemo实例将在正确配置和部署上述两个路由器后建立通信。
此示例适用于LAN和WAN场景。对于WAN情况,请确保使用公共IP地址而不是专用IP地址,并且通过在Internet路由器设备中正确配置端口转发,可以访问提供的端口。
2.1 启动ShapesDemo
ShapesDemo是一个发布和订阅在板上移动的不同颜色和大小的形状的应用程序。这不过是一个图形工具,用于测试特定DDS协议实现的正确性,以及证明与其他实现的互操作性。
让我们在一个DDS网络中启动ShapesDemo实例,并使用默认设置在主题“正方形”、“圆形”和“三角形”中发布。
现在,在其他网络中运行另一个实例,并订阅在发布者端选择的相同主题(使用默认设置)。
如果您在LAN场景中尝试此示例,请确保在其中一个ShapesDemo实例中使用了不同的DDS域id,以避免它们之间的直接通信。
2.2 Router配置
运行DDS路由器实例只需要配置文件。简而言之,如果每个路由器的相关主题与允许列表中包含的筛选器匹配,则每个路由器都会转发消息。也可以单独指定阻止列表,或者除了允许列表之外,还可以指定阻止列表。
让我们首先只添加一个Square Topic:
allowlist:- name: Square
除了选择我们希望发送/接收数据的主题之外,我们还必须配置最终执行通信的参与者。每个路由器实例将包含一个简单的和一个WAN参与者。简而言之,简单的参与者将负责与相应的ShapesDemo应用程序进行本地通信,而WAN参与者将负责桥接两个DDS网络之间的连接。
简单参与者所需的唯一配置是DDS域标识符。
- name: SimpleParticipantkind: localdomain: 0
如果在同一LAN中启动两个路由器,请在两个配置文件之一中设置不同的域id(与之前为ShapesDemo设置的相同)。
广域网参与者的配置更为复杂,我们在此不再详细介绍。简而言之,在本例中,两个WAN参与者都将通过UDP进行通信,其中一个是客户端,另一个是服务器角色。两个参与者都需要有一个侦听地址(对于UDP情况),在那里他们将期望接收流量,而对于客户端,则需要一个连接地址,该地址指向服务器的侦听地址。有关详细信息,请参阅WAN参与者和WAN配置。您还可以查看WAN示例,了解如何配置此类参与者的详细说明。
以下是客户端和服务器配置文件的示例:
# client-ddsrouter.yaml
version: v3.0allowlist:- name: Squareparticipants:- name: SimpleParticipantkind: localdomain: 0- name: ClientWANkind: wanconnection-addresses:- ip: 192.168.1.8port: 11800transport: udplistening-addresses:- ip: 192.168.1.4port: 11008transport: udp# server-ddsrouter.yaml
version: v3.0allowlist:- name: Squareparticipants:- name: SimpleParticipantkind: localdomain: 1- name: ServerWANkind: wanlistening-addresses:- ip: 192.168.1.8port: 11800transport: udp
2.3 Router执行
现在,配置文件就绪后,启动DDS路由器实例就像执行以下命令一样简单:
ddsrouter -c config-file.yaml
设置好两个路由器后,两个ShapesDemo实例之间的通信应该已经建立,因此方形现在在用户面板中可见。
DDS Router支持在运行时动态添加/删除主题(请参阅重新加载主题)。让我们通过将圆圈主题添加到两个路由器的允许列表来测试这个特性。此外,通过删除方形主题(从路由器的允许列表中删除此主题就足够了),方形数据应该停止到达订户。或者,可以将方形主题添加到阻止列表中,从而达到相同的效果。有关允许列表的详细信息,请参阅主题筛选。
allowlist:- name: Circle
应用这些更改后,用户侧的正方形不再更新(看起来可见但已冻结),而圆形应该更新。
有关如何配置和设置路由器的更多信息,以及如何发现DDS路由器可用作有用工具的多个场景,请随意浏览示例和用例部分。
相关文章:
fastdds router-3.开始
1. 项目概述 DDS路由器是由eProsima开发的跨平台非图形化应用程序,由Fast DDS提供支持,允许创建一个通信桥,连接两个DDS网络,否则将被隔离。DDS路由器的主要用途是通信两个物理或虚拟分离的DDS网络,这些网络属于不同的…...
云服务器ECS 什么是云服务器ECS?
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。 云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共…...
【socket网络编程】
socket网络编程主机字节序列和网络字节序列套接字地址结构通用socket地址结构专用的socket地址结构IP地址转换函数网络编程接口TCP编程流程代码举例服务器代码客户端服务器并发处理多个客户端多线程多进程主机字节序列和网络字节序列 主机字节序列分为大端模式和小端模式&…...
【验证码逆向专栏】某验三代、四代一键通过模式逆向分析
声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 本文章未经许可禁止转载…...
《MySql学习》 MySQL的 加锁规则
MySQL加锁原则 两个原则 原则 1:加锁的基本单位是 next-key lock。next-key lock 是前开后闭区间(区间锁和行锁)。原则 2:查找过程中访问到的对象(索引)才会加锁。 两个优化 1.优化 1:索引上…...
软件测试(linux命令篇-01文件操作命令)
linux文件篇命令linux系统常用文件操作命令1、查看目录内容及常用参数:ls2、目录切换:cd 3、创建文件:touch 4、创建目录 :mkdir5、 删除文件或目录:rm6、文件或目录的复制:cp7、文件或目录的移动ÿ…...
Code Virtualizer 3.1.4 Crack
Code Virtualizer 是一个强大的 Windows 应用程序代码混淆系统,它可以帮助开发人员保护他们的敏感代码区域免受逆向工程的影响,基于代码虚拟化的非常强大的混淆代码。 Code Virtualizer 会将您的原始代码(Intel x86/x64 指令)转换…...
Torch同时训练多个模型
20230302 引言 在进行具体的研究时,利用Torch进行编程,考虑到是不是能够同时训练两个模型呢?!而且利用其中一个模型的输出来辅助另外一个模型进行学习。这一点,在我看来应该是很简单的,例如GAN网络同时训…...
LCR数字电桥软件下载安装教程
软件:LCR数字电桥软件NS-LCR 语言:简体中文 环境:NI-VISA 安装环境:Win10以上版本(特殊需求请后台私信联系客服) 硬件要求:CPU2GHz 内存4G(或更高)硬盘500G(或更高) …...
C++模板写法详解
模板 概念 模板就是建立通用的模具,大大提高复用性 模板主要体现了cpp编程的另外一种思想泛型编程cpp提供两种模板机制 函数模板类模板 函数模板 作用 建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表 语…...
【备战面试】每日10道面试题打卡-Day2
本篇总结的是Java基础知识相关的面试题,后续也会更新其他相关内容 文章目录1、 和 equals 的区别是什么?2、你重写过 hashcode 和 equals 吗,为什么重写equals时必须重写hashCode方法?3、为什么Java中只有值传递?4、BI…...
“数字档案室测评”相关参考依据梳理
数字档案室建设无疑比数字档案馆建设应用范围更为广泛,涉及的单位类型和专业领域也更多。这一点从国家档案局的机构设置上也可以看出端倪: 国家档案局两个内设业务指导司中,档案馆(室)业务指导司主要针对档案馆和机关档案室,而经济…...
android 动态加载jar包
什么时候需要用到动态加载jar包呢? 减少apk本身大小,某些界面才需要用jar里的功能jar中的功能可以独立开发,不要依赖其它的东西,能适用各个项目和第三方公司合作,人家不提供项目源码给你,但又要开发他们使…...
JAVA版B2B2C商城源码多商户入驻商城
三勾商城多商户是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOS Android 公众号 H5 各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移…...
测试人员如何在测试环境数据库批量生成测试数据?方案分享
测试人员为了测试某个特定场景,往往需要在测试环境数据库中插入特定的测试数据来满足需求;性能测试时,常需要在测试环境生成大量可用测试数据来支持性能测试;建设持续集成持续交付体系时,我们往往也需要在测试环境生成…...
【el】表单
elementUI中的表单相关问题一、用法1、动态表单调用接口返回表单,后端的接口返回值如下:这些是渲染后的效果页面使用(父组件)<el-button size"small" class"Cancelbtn" click"sub(true)">发起…...
【Flutter入门到进阶】Flutter基础篇---布局
1 GridView网格布局组件 1.1 说明 1.1.1 图例 1.1.2 说明 GridView网格布局在实际项目中用的也是非常多的,当我们想让可以滚动的元素使用矩阵方式排列的时 候。此时我们可以用网格列表组件GridView实现布局 GridView创建网格列表主要有下面三种方式 1、可以通过Gr…...
python海龟绘图
一、基础 (一)介绍 海龟绘图(Turtle Graphics):“小海龟”turtle是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始…...
【计算机网络】数据链路层
概述 封装成帧 差错检验 可靠传输 实现机制 可靠传输的实现机制 停止等待协议 回退N帧协议 选择重传协议 【计算机网络】MAC帧和PPP帧(定义使用范围区别共同点)_GPNU_Log的博客-CSDN博客_ppp帧 PPP帧和以太网帧 | Mixoo 数据链路层的协议有PPP协…...
使用groovy代码方式解开gradle配置文件神秘面纱
来到这里的是不是都有以下疑问: 1.build.gradle配置文件结构好复杂啊,怎么记? 2.内部是怎么进行分析和执行的? 3.为什么可以在配置文件里面写groovy代码,怎么识别的? 4.怎么才能很方便的记住和快速上手…...
kafka入门到实战二(使用docker搭建kafka集群)
使用Docker搭建kafka单机/集群 拉取镜像:2.8.0之前,kafka都需要依赖zookeeper docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper运行zookeeper镜像 docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper运行ka…...
【简化开发】lombok的使用、编译后的代码及源码
lombok的使用导入依赖一、getter、Setter、toString1、getter、Setter分别生成getxxx()和setxxx()方法2、toString生成toString()方法,按顺序打印类名称以及每个字段,并以逗号分隔二、NoArgsConstructor、RequiredArgsConstructor、AllArgsConstructor1、…...
在线就能用的主图设计素材,免费分享!
如何给自己的店铺商品设计专属的节日活动主图?没有节日活动的主体素材要如何设计?下面小编就分享一个在线素材设计工具,打开乔拓云,平台里面不仅有许多能使用的电商设计素材,还有许多的设计工具和模板能帮助你快速的实…...
【测绘程序设计】——计算卫星位置
本文分享了根据广播星历计算卫星于瞬时地固系下位置的计算程序(C#版)(注:瞬时地球坐标系坐标经极移改正即可获得协议地球坐标系坐标),相关源代码(完整工程,直接运行;包含实验数据)及使用示例如下。 目录 Part.Ⅰ 使用示例Part.Ⅱ 代码分析Chap.Ⅰ 数据结构Chap.Ⅱ 计…...
山东双软认证的基本条件
一、山东双软认证的基本条件 "双软认证"是指软件产品评估和软件企业评估;企业申请双软认证除了获得软件企业和软件产品的认证资质,同时也是对企业知识产权的一种保护方式,更可以让企业享受国家提供给软件行业的税收优惠政策;我们…...
TPM 2.0实例探索3 —— LUKS磁盘加密(4)
接前文:TPM 2.0实例探索2 —— LUKS磁盘加密(3) 本文大部分内容参考: Code Sample: Protecting secret data and keys using Intel Platform... 二、LUKS磁盘加密实例 4. 将密码存储于TPM的PCR TPM平台配置寄存器(…...
Linux连接RDP远程服务工具集记录
目录 rdesktop 安装 实例 xfreerdp 安装 实例 remmia 介绍 rdesktop 安装...
离散事件动态系统
文章目录离散事件动态系统ppt离散事件系统建模离散事件动态系统的基本组成元素离散事件动态系统仿真具体建模petri建模实例离散事件动态系统 ppt ppt 仿真建模步骤 离散事件系统建模 from:离散事件系统建模 离散事件动态系统的基本组成元素 (1&am…...
无线WiFi安全渗透与攻防(二)之打造专属字典
系列文章 无线WiFi安全渗透与攻防(一)之无线安全环境搭建 打造专属字典 什么在破解之前先准备专用字典,因为对于一般家庭来说,常用 一个是预共享密钥PSK,一个是PIN码。 也不是所有的路由都开起了PIN码,一般都会开启域共享密钥…...
拥抱 Spring 全新 OAuth 解决方案
以下全文 Spring Authorization Server 简称为: SAS 背景 Spring 团队正式宣布 Spring Security OAuth 停止维护,该项目将不会再进行任何的迭代目前 Spring 生态中的 OAuth2 授权服务器是 Spring Authorization Server 已经可以正式生产使用 作为 SpringBoot 3.0 的…...
手机如何创造网站/百度网站优化软件
网络上下载下来的图片自适应:android:adjustViewBounds"true"(其详细解释在下面)<ImageViewandroid:id"id/dynamic_item_image"android:layout_width"wrap_content"android:layout_height"wrap_conten…...
wordpress模版c2c商城/百度软件应用中心
视频教程:http://pan.baidu.com/s/1kXBQj memcached是一套分布式的快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权…...
用织梦做网站有钱途吗/百度信息流广告推广
leetcode分数预测:https://lcpredictor.herokuapp.com/ https://zerotrac.github.io/leetcode_problem_rating/ 可以查看leetcode各道题目的分数,基于大数据统计 https://codeforces.com/ https://atcoder.jp/home oi数据库 https://bytew.net/OIer/ind…...
温州大型网站设计公司/网址收录
查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm完整代码:复制代码代码如下:用html5的canvas画布绘制贝塞尔曲线原文function draw(id){var canvasdocument.getelementbyid(id);if(canvasnull)return false;var contextcanvas.getcontext(2d);cont…...
qq空间可以做网站吗/电商seo优化
这里是对docker compose 网络配置的一些说明,详细的文档参考: https://docs.docker.com/compose/networking/ 1 default network 如果不显式指定,Compose会为每一个app设置一个default网络。每个service的container会加入这个default网络并…...
vi设计公司专业品牌/四川seo哪里有
一、混凝土结构的受力特点及其构造1.混凝土结构的优点与缺点(1)混凝土结构的优点:1)强度较高,钢筋和混凝土两种材料的强度都能充分利用;2)可模性好,适用面广;3)耐久性和耐火性较好,维护费用低&a…...