微服务架构 VSOA

更新时间:
2023-06-07
下载文档

微服务架构 VSOA

本节介绍翼辉任务关键型云原生的微服务架构 VSOA,以及 VSOA 与 HTTP 在功能和性能方面的对比情况。

什么是 VSOA

VSOA(Vehicle SOA)是翼辉为了解决任务关键型系统不能适用当前微服务通信架构问题而设计的⼀个轻量级适用于任务关键领域的微服务通信架构,以方便开发者构建大型分布式松耦合软件系统,且支持并行开发。

其主要特点为支持多种编程语言、多 CPU 架构环境与多操作系统平台,同时不依赖任何第三方库,架构简洁、资源占用小、服务响应速度快。使用者无需单独学习 IDL(Interface description language)语言,具有开发成本低、开发效率高等特点。考虑到任务关键型场景的多样性和碎片化特点,VSOA 汇集订阅/发布、RPC、高带宽数据流以及自定义数据报等功能于一体,可满足任何分布式应用模型;同时提供非入侵式仿真测试工具与便捷的开发环境,让开发者在享受云计算先进的开发体验以及高效的生产效率的同时,继续保持任务关键领域对业务功能和性能的高可靠需求。

VSOA 功能特性

  • 支持统⼀的 URL 资源标记
  • 支持 URL 匹配订阅和发布模型
  • 支持实时远程过程调用
  • 支持并行多命令序列
  • 支持可靠与快速数据发布与数据包
  • 支持多路全双工高速并行数据流
  • 支持网络 QoS 控制
  • 轻松实现服务器容错设计
  • 支持多种编程语言绑定
  • 支持 IPv4/IPv6 双栈

关于 VSOA 功能特性的详细介绍请参见 VSOA 微服务架构open in new window

VSOA 对比 HTTP

目前开源方案中没有统一的微服务治理框架,但通常可使用 HTTP、MQTT、gRPC、WebSocket 等组合进行开发。

下面以嵌入式应用场景为例,从功能和性能维度对 VSOA 和 HTTP 进行简要对比。

对比环境:
i5-10505 CPU@3.20GHz 32GB 内存的物理主机。

功能对比

对比项VSOAHTTP(微服务框架通用协议)
C/C++ 开发成本
综合运维成本
实时性
多编程语言支持支持支持
双工数据流全双工半双工
基于 URL 的业务路由支持需要第三方服务网格软件
订阅发布支持不支持
服务定位内置解析服务K8S DNS
网络 QoS支持不支持
安全认证ASIL-D ISO 26262 认证

性能对比

应用资源消耗测试

  • C 应用资源消耗测试
对比项VSOA 应用HTTP 应用
C 内存消耗1.4 MB25 MB(基于 facil 框架)
C 程序的大小159 KB3 MB(基于 facil 框架)

说明:
facil 框架是一套开源 C Web 应用框架。

  • JavaScript 应用资源消耗测试
对比项VSOA ClientVSOA ServerHTTP ClientHTTP Server
内存消耗78 MB65 MB95 MB84 MB
程序包安装大小1.6 KB100 KB1.9 KB4.3 MB
1 秒请求次数17585 次-1094 次-
1000 次请求总用时56.87 ms-914 ms-
1000 次请求平均用时0.057 ms-0.914 ms-

实时性能测试

  • VSOA JavaScript 实时性能测试(对比 IPtables 路由)
对比项VSOA 应用(Host Network)Kubernets HTTP(IPtables 路由)
最大用时(毫秒)9597
最小用时(毫秒)< 1< 1
平均用时(毫秒)0.1050.773
中位数用时(毫秒)< 11
方差(稳定性)0.1051.258
客户端容器 CPU 用量6.6 %27.2 %
客户端容器内存用量107.596 MB150.896 MB
服务端容器 CPU 用量5.6 %12.60 %
服务端容器内存用量53.888 MB87.17 MB
DNS 服务 CPU 用量-13 %
DNS 服务内存用量-52.8 MB
  • VSOA C 实时性能测试
项目具体内容性能数据
RPC实时性能执行 1000 次,最大: 45 us,最小: 29 us,平均: 36 us
RPC速度性能每秒调用次数 27700 左右
发布订阅实时性能执行 1000 次,最大: 45 us,最小: 30 us,平均: 38 us
发布订阅速度性能每秒调用次数 27700 左右
数据报常规通道单向收发速度728 Mbps
数据报快速通道单向收发速度712 Mbps
Stream双向通信数据流897 Mbps
  • VSOA JavaScript 实时性能测试(对比 VxLAN 路由)

    对比环境为 3 节点 2C4G 2.7Ghz 阿里云虚拟主机,测试详情如下:

    • 载荷大小:32字节 JSON + 4K Buffer

    • 测试压力:500 rps (每秒 500 次请求)

    • 测试请求总数:10 万次

对比项VSOA 应用 (Host Network)Kubernets HTTP (VxLAN)
最大用时(毫秒)9999
最小用时(毫秒)< 1< 1
平均用时(毫秒)0.3163888.7137
中位数用时(毫秒)< 12
方差(稳定性)0.4184078141.668
客户端容器 CPU 用量4.51 %31.07 %
客户端容器内存用量72.61 MB82.99 MB
服务端容器 CPU 用量0.00 %27.60 %
服务端容器内存用量14.89 MB53.8 MB

说明:
HTTP 服务中途出现过 k8s cluster.local 解析错误。

文档内容是否对您有所帮助?
有帮助
没帮助