当使用基于文本的EDI消息有效负载(如http://examples.x12.org/)通过直接的TCP、HTTP、SOAP或其他传输协议时,有没有人有关于这两种协议的示例或智慧的话语:
1)使用netty进行简单传输协议帧编码(例如TCP STX/ETX成帧,HTTP成帧),然后将原始有效负载转发到另一个工具,如Smooks,用于解析/编组。(如果有除烟雾之外的其他选择,请分享!)
2)或者使用Netty和自定义的编解码器来解析复杂的循环内容(段、字段、组件等)。
这似乎在任何一种情况下都是可能的,但需要足够的性能(1000条消息/秒)、低延迟(10ms或更低)、低延迟标记(如最小GC ),并且如果您创建了编解码器或解析器/编组程序,它是否可以移植到其他传输协议/其他(java)系统。
不了解/混淆的部分原因是消息的编解码器与编组/解析器,特别是当消息可以直接通过TCP传输时。
感谢您的指导!
发布于 2015-07-08 00:32:43
回答我自己的问题:使用Camel解决方案,其中netty4-http是一个端点(用于HTTP成帧),smooks (作为一种camel数据格式)用于EDI有效负载解析。
对于大约1.5KB大小的X12有效负载,Smooks在EDI解组impl上的延迟似乎在20-40ms范围内。编组我使用来自java对象的直接编写器,因为对smooks camel dataformat使用编组不起作用。
虽然延迟较高,但非常快速地设置edi xml文件映射,并使用maven-ejc插件从edi xml创建java绑定对象。对于快速的周转,与长期的运行时性能,对于我的场景来说,这是一个很好的权衡。
https://stackoverflow.com/questions/30541116
复制相似问题