能够接收响应的UDP客户端及TCP&UDP同步场景下的请求处理

前言

客户的需求真是千奇百怪

最近有个需求, 内网内有一批数据不太对, 需要通过UDP将数据发送至外网, 外网程序处理后同样也以UDP方式返回. 在此过程中需要同步阻塞, 即内网程序要一直等待外网程序的数据返回, 才进行下一步动作. (效率可想而知 -_-)

这里的设计适用于: 主线程一直循环按批获取数据, 当一批数据过来时, UDP客户端分别将其中的数据对外发送, 发送过程一直等待UDP返回, 并且此批数据全部处理完成之后, 再唤醒主线程, 去取下一批数据

这里的程序为内网程序

设计

  • 由于程序不止要发送udp, 还要接受返回消息, 所以这边采用netty实现UdpClient
  • 同步方式采用wait及LockSupport辅助处理
  • udp是不保证交付的, 所以添加了超时处理器, 一定时间内没有收到返回消息时重试n次请求
系统设计

在这里插入图片描述

详细设计

在这里插入图片描述

关键类说明

  • UdpClient代表udp客户端
  • UdpClientChannelInitializer代表netty的初始化配置
  • UdpTimeOutServerHandler&UdpHandler代表具体的handler
  • MainApp代表主线程类
  • InnerAppService
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值