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

news2024/11/24 6:21:50

技术背景:
业务系统:管理机器人,机器人任务执行等等
机器人使用是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,主要是做网关与业务系统的解藕。

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

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

业务系统推送架流程图

在线机器人消息推送

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

又双叒!宏电5G RedCap工业智能网关获得首个基于RedCap终端场景的华为技术认证

近日,宏电Z2 V20 5G RedCap工业智能网关率先通过华为OpenLab全球开放实验室的系列严格验证流程,完成基于华为RedCap终端场景的兼容性测试,首个获得华为Cloud Open Labs授予的HUAWEI COMPATIBLE证书及其相关认证徽标使用权。 宏电5G RedCap工业…

SAP-PP-MRP-策略组流程演示

策略组10 按库存生产,按库存生产就不考虑其他了,说明库存不足,或者说预测下一阶段销售,库存不足了,那么就需要提前安排生产。 策略组10按库存生产操作流程TCODE操作说明注意事项MM01创建物料成品MM01创建物料原材料C…

vscode + gdb +gdbserver 远程调试Pg源码

本文主要介绍如何通过window或者macos远程调试虚拟机的postges源码 安装pg13调试版本 安装调试版postgres13,此处忽略 安装vscode(window macos) 安装插件 Remote Development 插件安装插件C/C 安装gdb gdbserver(远程虚拟机) yum install gdb yum install gdb-gdbserver…

BUUCTF 来首歌吧 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 密文: 下载附件,解压得到一个.wav音频文件。 解题思路: 1、得到一个音频文件,放到Audacity看看。看到有两条音轨,放大上面的那条音轨,看到这…

isomorphic-fetch库代码示例

isomorphic-fetch库的爬虫程序。 typescript // 引入isomorphic-fetch库 import fetch from isomorphic-fetch; // 设置 const proxy ; // 定义视频URL const url ; // 使用fetch获取视频数据 fetch(url, { method: GET, headers: { Accept: application/json, …

工作常遇,Web自动化测试疑难解答,测试老鸟带你一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、自动化测试中隐…

工作汇报怎么写?建议收藏

整体思路与模块: 背景/事件 成果展示 推动落实的方法论 收获与成长 存在的不足及改进措施 下一步工作安排 支持(选) 一、背景/事件 对于区分“功能性总结”和“应付性总结”,在背景/事件方面有一个关键点 是报告是否具有…

【前端开发】图例宽度根据数值自适应

前端开发 先看结果图 图例的宽度会随数值的改变而变化。 HTML部分 <!-- 数值部分 --> <ul class"tuli" ref"num"><listyle"margin-top: 5px;padding: 0 5px;text-align: center;"v-for"item of itemArr":key"i…

重点单位实现“码上监管” 打造基层互联网监管新模式

随着数字化时代的到来&#xff0c;二维码技术在各行各业得到了广泛应用。在基层治理中&#xff0c;“码上”监督作为一种新型的监督方式&#xff0c;具有便捷、高效、透明度高等优点&#xff0c;逐渐在基层治理中得到推广和应用。 “码上”监督是指通过二维码等技术手段&#x…

java 实现 CAN口通讯

1、引入第三方库 链接&#xff1a;https://pan.baidu.com/s/1JC-Bi_Qgts5a-tGo28JcTQ?pwd6533 提取码&#xff1a;6533 将第三方库 放在libs包里&#xff0c;并在pom文件中增加依赖 <dependency><groupId>libsocket-can-java</groupId><artifactId>…

istio学习笔记-安装

Istioldie 1.18 / 安装指南 基于Kubernetes的Istio的微服务架构需要安装以下组件&#xff1a; Istio控制平面组件&#xff1a;包括Istio-Pilot、Istio-Policy、Istio-Telemetry等。这些组件负责微服务的管理和配置&#xff0c;如流量管理、策略执行、遥测数据收集等。数据平面…

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

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

微服务的注册发现和微服务架构下的负载均衡

文章目录 微服务注册模型服务注册与发现怎么保证高可用【1. 服务端崩溃检测】【2. 客户端容错】【3. 注册中心选型】 微服务架构下的负载均衡【1.轮询与加权轮询】【2.随机与加权随机】【3.哈希与一致性哈希】【4.最少连接数】【5.最少活跃数】【6.最快响应时间】【总结】 负载…

周报5_YMK

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

房地产信息展示服务预约小程序的作用是什么

市场中房产品牌很多&#xff0c;中介也比较多&#xff0c;各个品牌在城市中竞争激烈&#xff0c;然而随着线下流量匮乏及多种难题&#xff0c;传统商家线下经营方式变的很低效&#xff0c;急需通过线上实现增长。 房产不同于其它产品&#xff0c;转化时间较长&#xff0c;但又…

RedCap推动5G规模应用,紫光展锐赋能产业高质量发展

5G R17 RedCap作为面向中高速物联网场景的关键技术和解决方案&#xff0c;可以大幅降低终端的复杂度、成本和功耗。在当前国内5G应用规模化发展关键时期&#xff0c;5G R17 RedCap拥有广大的市场潜力与广泛的应用场景&#xff0c;将有助于推动5G规模应用、构建融通发展的5G生态…

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

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

多区域LCC-HVDC一次调频二次调频

多区域LCC-HVDC高压直流互联一次二次调频&#xff0c;后续可加入双馈永磁风机调频&#xff0c;储能调频等。多个四机两区域模型互联。 目前实现的主要是区域之间的调频。

掌握这11点外贸知识,能够给你外贸工作带来很大提升!

01.产品展示 关于产品展示&#xff0c;非常重要也一再提及&#xff0c;一个好的产品必须包括以下几部分&#xff1a; ● 产品标题准确概括产品&#xff1b; ● 产品图片清晰且包括细节图&#xff1b; ● 提供详尽的产品描述&#xff0c;比如型号、尺寸、材质、配件等等。最好…

【Android】统一系统动画

需求&#xff1a;除panel动画效果为弹出之外&#xff0c;其余的应用效果为渐入渐出 从系统层面统一把控动画效果&#xff0c;而不是单个应用自己处理 Android系统版本&#xff1a;9.0 代码地址 \frameworks\base\core\res\res\values\styles.xml 当时看注释&#xff0c;以为…