侧边栏壁纸
博主头像
DeBill的博客博主等级

想都是困难,做才有方法

  • 累计撰写 7 篇文章
  • 累计创建 8 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

基于Netty开发的通讯转化模块

DeBill
2023-07-09 / 0 评论 / 1 点赞 / 70 阅读 / 6773 字 / 正在检测是否收录...

背景

  • 一些机构对于应用系统架构安全性的考虑,不允许系统A与系统C直接通讯直连,需要经过部署于DMZ区(Demilitarized Zone 防火墙隔离区,可以作为外部网络和内部网络之间的缓冲区,加强系统架构安全性)的应用中转。

  • 有些应用因为改造成本过高,通讯方式固定,例如只允许通过TCP的长连接接入,此时需要一个中间层应用进行通讯转化

需求分析

作为中间层的透传模块,根据上下游应用的通讯方式不同,有以下的情况:

透传类型

上游通讯模式

下游通讯模式

使用协议

长转长

单工-异步长连接

单工-异步长连接

TCP

长转短

单工-异步长连接

双工-同步短连接

TCP

短转长

双工-同步短连接

单工-异步长连接

TCP

短转短

双工-同步短连接

双工-同步短连接

TCP

术语说明

单工:一条链路只发送数据/只接受数据

双工:一条链路既发送数据又接受数据

单工-异步长连接:单工、异步,意味着有两条链路,一条链路用于发送数据,另一条链路用于接收数据

FAQ

单工的异步长连接有什么优点?

可以提高系统吞吐量,某条链路可以只负责发送数据/只负责接收数据。

系统设计

长转长

长连接转长连接

划分为与上游对接的部分下游对接的部分,和上下游都是单工-异步长连接,启动应用时进行如下工作:

  • server 1监听端口,接受上游来的请求(图示有两条链路则监听两个端口)

  • client 1与上游server建立长连接,保存连接信息

  • server 2监听端口,接受下游返回的响应

  • client 2与下游server建立长连接,保存连接信息

消息传递流程:

上游client发起请求 --> server 1接受到请求后获取client 2建立好的长连接转发请求给下游 --> 下游server接受到请求后让下游client返回响应给server 2 --> server 2接受到响应后获取client 1建立好的长连接转发请求给上游

注:此种实现方式可以实现应用层协议无关的长连接转长连接

长转短

长连接转短连接

划分为与上游对接的部分下游对接的部分,上游是单工-异步长连接下游是双工-同步短连接,启动应用时进行如下工作:

  • server 1监听端口,接受上游来的请求(图示有两条链路则监听两个端口)

  • client 1与上游server建立长连接,保存连接信息

消息传递流程:

上游client发起请求 --> server 1接受到请求后获取新建client 2客户端同时转发消息给下游 --> 下游server接受到请求返回响应给client 2 --> client 2接受到响应后获取client 1建立好的长链接,转发响应给上游server

注:此种实现方式可以实现应用层协议无关的长连接转短连接

短转长

短连接转长连接

划分为与上游对接的部分下游对接的部分,上游是双工-同步短连接,下游是单工-异步长连接,启动应用时进行如下工作:

  • server 1监听端口,接受上游来的请求

  • server 2监听端口,接受下游返回的响应

  • client 2与下游server建立长连接,保存连接信息

消息传递流程:

上游client发起请求 --> server 1接受到请求后获取client 2建立好的长连接转发请求给下游 --> 下游server接受到请求后让下游client返回响应给server 2 --> server 2接受到响应后解析报文获取message Id,根据message Id获取上游短连接的链路

注:目前版本的短连接转长连接还是无法实现应用层协议无关的转发,待后续改造升级

短转短

短连接转短连接

分为与上游对接的部分下游对接的部分,上下游都是双工-同步短连接启动应用时进行如下工作:

  • server 1监听端口,接受上游来的请求

消息传递流程:

上游client发起请求 --> server 1接受到请求后新建客户端client 1与下游server建立连接转发消息,同时client 1保存上游的短连接链路 --> 下游server接受到请求返回响应给client 1 --> client 1接收到响应后转发回上游

注:此种实现方式可以实现应用层协议无关的短连接转短连接

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区