gpt4 book ai didi

java - Netty 编解码器与 smooks 编码

转载 作者:太空宇宙 更新时间:2023-11-04 13:48:47 35 4
gpt4 key购买 nike

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

1) 使用 netty 进行简单的传输协议(protocol)帧编码(例如 TCP STX/ETX 帧、HTTP 帧),然后将原始有效负载转发到另一个工具(例如 Smooks)进行解析/编码。 (如果除了 smooks 之外还有其他选择,请分享!)

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

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

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

感谢您的指导!

最佳答案

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

对于大约 1.5kb 大小的 X12 负载,Smooks 在 EDI-to-Java unmarshal impl 上的延迟范围似乎为 20-40ms。编码 我使用了 java 对象的直接编写器,因为在 smooks Camel 数据格式上使用编码不起作用。

虽然延迟较高,但可以非常快速地设置 edi xml 文件映射并使用 maven-ejc 插件从 edi xml 创建 java 绑定(bind)对象。对于快速周转,与长期运行时性能相比,对于我的场景来说这是一个很好的权衡。

关于java - Netty 编解码器与 smooks 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30541116/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com