各位前辈,小弟想在java中实现对一个协议的处理,具体过程比较简单:
1. 从源地接收协议数据包,解析后,保存协议的信息,因为要会response,所以很多原始信息需要保存。
2. 将协议解析后,发送到第三方处理,等待rsp。
3. 接收到第三方的rsp后,重新根据原始信息组包发回源地1. 想请教一下,这些协议信息用什么数据结构保存?因为可能同时发送很多包,需要在收到rsp后,需要找到对应的原始命令。或者是用什么设计模式比较合适?
2. 每个消息要有超时控制,这个怎么实现?初步的想法是需要个queue一类的东西,收到后存放到里面,处理完成后删除,但是放到里面,怎么区分这些消息的状态?轮询的方法效率太低。多谢。
Peter编 程 王 网站站长www. king of coders .com
1. 从源地接收协议数据包,解析后,保存协议的信息,因为要会response,所以很多原始信息需要保存。
2. 将协议解析后,发送到第三方处理,等待rsp。
3. 接收到第三方的rsp后,重新根据原始信息组包发回源地1. 想请教一下,这些协议信息用什么数据结构保存?因为可能同时发送很多包,需要在收到rsp后,需要找到对应的原始命令。或者是用什么设计模式比较合适?
2. 每个消息要有超时控制,这个怎么实现?初步的想法是需要个queue一类的东西,收到后存放到里面,处理完成后删除,但是放到里面,怎么区分这些消息的状态?轮询的方法效率太低。多谢。
Peter编 程 王 网站站长www. king of coders .com
1,接收消息(消息带有ID)
2,临时缓存数据
可以用数据库,因为程序可能crash,但为了加快处理速度,可以加一个Map(MessageID,Message)作一个简单的cache
3,request
4,receive rsp
5,在cache找,如果没找到,到数据库中找另外接收rsp是同步还是异步