基于rosbridge 与业务系统长链接网关架构设计

技术背景:
业务系统:管理机器人,机器人任务执行等等
机器人使用是ros1 ,业务系统与机器人交互使用rosbridge, rosbridge 就是websocket 链接,所以就有了如下的一些架构思想

架构图

在这里插入图片描述

客户端

客户端主要分为app端、pc端、h5端等。每个端都会与网关维护一条稳定的长连接。当然pc端的多窗口其实是多websocket连接了

ingress

ingress负责七层域名,这里可以是nginx组件也可以是k8s的ingress controller组件。

并且在这一层可以挂载证书,做TLS的加解密,继而将长连接代理到网关去。

这里要注意的是客户端和ingress这一层是wws协议,ingress和ws-gateway是ws协议。

ws-gateway

ws-gateway维护了所有机器人登录后的ws长连接。有如下职责:

  • 尽可能的去承担机器人 的ws长连接。

  • 做机器人 鉴权,解析机器人ID和一些业务ID。

  • 负责将机器人消息分到到下游,将服务端消息通知到在线机器人。

生成socketId,并维护socketId与ws连接的关系。这里的sid在后续的设计中尤为重要。

网关的设计应该是稳定的,无业务的。

ws-api

ws-api是业务系统与网关的媒介。换句话说,它是业务系统与在线机器人沟通的桥梁。

ws-api与网关的信息交互,我们一开始的设计是ws通道,后续切换到了gRPC-Stream。关于这里的思考,大家可以看一些关于gRPC-Stream websocket的文章。

ws-api的职责如下:

负责向在线机器人 通知实时消息的API。

负责维护多个维度的映射关系。

负责消息广播,将一条消息广播到各个gateway的节点上。

负责维护连接的心跳(通过redis key ttl实现)。

负责消息/机器人 连接等指标统计。

负责将在线机器 消息下发到MQ Topic中,由下游的业务系统消费。

ws-api与ws-gateway是打包在一起的,一切业务皆在下游。

MQ

消息中间件,可以是RocketMQ,可以是Kafka,主要是做网关与业务系统的解藕。

至于用什么消息中间件看自己需求,基本上常用的都可以满足,看自己具体的业务需要了

下面我们来一起几个业务流程场景

业务系统推送架流程图

在线机器人消息推送

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/143765.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

批量整理相同名称文件,高效归类至指定文件夹!

你是否曾经遇到过成百上千的文件名重复,让人无从下手的情况?现在,我们为你带来了一款全新的文件管理工具,它可以让你轻松地将相同名称的文件批量整理归类到指定文件夹中,让你的文件管理更加高效、有序! 第…

嵌入式软件开发要注意这七种错误!

软件行业的工作经验和你从事这个行业的工作年限直接相关。 这句话在某种程度上是对的,但是你从事这项工作的年限,并不一定代表你获得了相同年限的工作经验,正如一句话所说:“我们以为我们是工作了十年,其实却只有一年…

周报5_YMK

周报5 论文:FLASHDECODING: FASTER LARGE LANGUAGE MODEL INFERENCE ON GPUS https://arxiv.org/pdf/2311.01282.pdf 在斯坦福大学团队的 Tri Dao 等人提出了 FlashAttention 和 FlashDecoding 后,相关的工作又被很快提出,上周来自无问芯穹…

赛宁网安获评“铸网-2023”江西省实网应急演练优秀支撑单位

近日,南京赛宁信息技术有限公司(赛宁网安)获得了江西省工业和信息化厅颁发的“优秀支撑单位”荣誉。 该荣誉表彰是对赛宁网安在“铸网-2023”江西省工业领域网络安全实网应急演练中提供全程技术支撑能力的认可。 本次实网应急演练聚焦工业企…

计算图片中两个任意形状多边形相交部分的大小

一张图片中两个任意多边形相交的面积计算方法。本文参考https://blog.csdn.net/PanYHHH/article/details/110940428;加了一个简单的示例,也对代码做了一点清淅化。原博客中还有其他链接,是C代码,没有看原理,但以下代码…

网络的概念与定义

一.网络的概念与定义 1.1 网络的概念 具有独立功能的计算机通过通信介质连接起来就形成了网络。为了满足人们的各种需求,比如访问网页,在线游戏,在线视频等,会形成比如文本,图片,视频等都是信息的不同呈现方…

java 旋转方阵

public static void main(String[] args) {Scanner scanner new Scanner(System.in);// N阶方阵int n scanner.nextInt();// 构建方阵List<List<Integer>> matrix new ArrayList<>();for (int i 0; i < n; i) {List<Integer> row new ArrayLis…

如何在群晖虚拟机快速部署线上web网站并实现公网访问

文章目录 前言1. 安装网页运行环境1.1 安装php1.2 安装webstation 2. 下载网页源码文件2.1 访问网站地址并下载压缩包2.2 解压并上传至群辉NAS 3. 配置webstation3.1 配置网页服务3.2 配置网络门户 4. 局域网访问静态网页配置成功5. 使用cpolar发布静态网页&#xff0c;实现公网…

运输服务预约小程序的效果如何

市场中运输服务的需求非常高&#xff0c;比如常见的汽车出境、进出口代理、仓储服务、集装箱运输、展会运输等&#xff0c;由于相关从业者多&#xff0c;所以在运输服务总是在市场中有着一席之地。 以前的运输企业拓客转化方式大多是同地区的单子&#xff0c;很难多渠道拓展&a…

gurobi最新下载安装教程 2023.11

文章目录 gurobi下载gurobi安装gurobi lincese获取添加系统环境变量 gurobi和python gurobi下载 https://www.gurobi.com/ 点击下载中心 download center 可以直接选择 Gurobi Optimizer下载 gurobi安装 gurobi可以通过python进行调用&#xff0c;但是需要先获得gurobi的li…

Java实现深拷贝的方式

文章目录 1. 实现 Cloneable 接口并重写 clone() 方法2. 使用序列化和反序列化实现深拷贝3. 第三方工具(1) Apache Commons BeanUtils 库(2) Apache Commons Lang 库(3) Spring Framework(4) Kryo 序列化库(5) FST 序列化库 1. 实现 Cloneable 接口并重写 clone() 方法 在 Jav…

PicoDiagnostics (NVH设备软件)-PS软件设置文件类型介绍

作为远程技术指导人员&#xff0c;下面这个功能对你来说可能非常有帮助。 在PicoScope 7 软件的文件保存格式里&#xff0c;通常选择的是<PS 数据文件>类型&#xff0c;容易忽略其他实用的保存文件类型&#xff0c;下面我们介绍<PS设置文件>类型。 PS 数据文件&…

Peoeasy机器人:原点无法重置问题

机械手在伺服关闭的模式下&#xff0c;插入定位插销&#xff0c;进入机构设定重置原点&#xff0c;发现PUU值没有变化 问题原因 台达软件版本比较多&#xff0c;每个版本重置原点的模式和马达偏差角的默认值是有一定差异的。再重置原点之前尽可能先确认一下重置原点的模式和马…

【nlp】2.1 认识RNN模型

认识RNN模型 1 什么是RNN模型2 RNN模型的作用3 RNN模型的分类:1 什么是RNN模型 RNN(Recurrent Neural Network),,中文称作循环神经网络,它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征,一般也是以序列形式进行输出。 一般单层神经网络结构:…

世界互联网大会|美创科技新一代 灾备一体化平台(DRCC v3.0)重磅亮相

11月9日&#xff0c;在2023年世界互联网大会“互联网之光”博览会上&#xff0c;美创科技携2023年重磅新品——新一代 灾备一体化平台&#xff08;DRCC v3.0&#xff09;亮相&#xff01; ◼︎ 云计算、国产化浪潮下&#xff0c;各类信息基础设施的运行安全面临全新挑战&#…

快手自动引流软件的运行分享,以及涉及到技术与核心代码分享

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 引流是任何网络创业者或营销人员必备的技能之一。手动引流不仅耗时&#xff0c;而且效果难以保证。因此&#xff0c;自动引流软件应运而生&#xff0c;成为许多人的得力助…

【LeetCode】每日一题 2023_11_13 区域和检索 - 数组可修改(树状数组/线段树)

文章目录 刷题前唠嗑题目&#xff1a;区域和检索 - 数组可修改题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 今天是中等题&#xff0c;貌似挺简单的&#xff0c;先试试水 题目&#xff1a;区域和检索 - 数组可修…

AMEYA360分析:炬玄智能高精准度、低相噪TCXO时钟补偿芯片

炬玄智能一款TCXO芯片JXT171和生产补偿系统成功通过应用测试&#xff0c;指标达到国际先进水平&#xff0c;实现该产品品类国内首家全国产化突破&#xff0c;为重点行业终端客户供应链保障续上关键一环。 1、典型应用 随着移动通信技术在我国得到广泛应用&#xff0c;蓬勃发展的…

一文读懂国内机械臂产业现状与未来发展趋势

原创 | 文 BFT机器人 机械臂是一种可以适用不同环境代替人类操作&#xff0c;执行任务的机器设备&#xff0c;通常由关节和臂段组成&#xff0c;是非常重要的工业自动化设备&#xff0c;能够帮助我们完成一些危险或复杂的任务。机械臂灵活、精准、高效的特点使其广泛应用于制造…

汽车OBD2蓝牙诊断仪解决方案程序开发

1、因TL718已经为你建立了物理层、数据链层和部分应用层的协议&#xff0c;所以只要OBD2标准应用层协议文本&#xff0c;ISO15031-5 或 SAE J1979&#xff08;这两个协议是相同的内容&#xff09;。 2、TL718诊断接口 1 套或用TL718芯片自建电路。3、家用PC机电脑一台。4、安…