1

在通过直接 TCP、HTTP、SOAP 或其他传输协议使用基于文本的 EDI X12 消息有效负载(例如http://examples.x12.org/ )时,是否有人有以下示例或智慧之言:

1) 使用 netty 进行简单的传输协议帧编码(即 TCP STX/ETX 成帧、HTTP 成帧),然后将原始有效负载转发到另一个工具,例如 Smooks 进行解析/编组。(如果有烟熏以外的替代品,请分享!)

2) 或使用 Netty 和自定义创建的编解码器来解析复杂的循环内容(段、字段、组件等)。

在任何一种情况下似乎都有可能,但要寻找足够的性能(1000 条消息/秒)、低延迟(10 毫秒或更低)、低延迟标记(例如最小 GC),并且如果您创建编解码器或解析器/编组器,它是否可移植到其他传输协议/其他 (java) 系统。

部分无知/困惑是消息的编解码器与编组器/解析器,特别是当消息可以直接通过 TCP 传输时。

感谢您的任何指导!

4

1 回答 1

0

回答我自己的问题:使用 Camel 解决方案,其中 netty4-http 是端点(用于 HTTP 框架),smooks(作为骆驼数据格式)用于 EDI 有效负载解析。

对于约 1.5kb 大小的 X12 有效负载,Smooks 似乎在 EDI 到 Java 解组 impl 的 20-40 毫秒延迟范围内。编组我使用来自 java 对象的直接编写器,因为在 smooks 骆驼数据格式上使用编组不起作用。

虽然延迟较高,但可以非常快速地设置 edi xml 文件映射并使用 maven-ejc 插件从 edi xml 创建 java 绑定对象。为了快速周转,与长期运行时性能相比,我的方案相当不错。

于 2015-07-07T16:32:43.387 回答