我正在开发一个消息系统,我使用JBoss Netty + Google protobuf进行POC。选择protobuf是因为它具有快速的序列化/反序列化,相对较低的流量成本和多种语言的可用性。
但是,当涉及到高负载下的生产时,自编码服务器应用程序永远不会像完善和经过测试的框架那样好。
问题是,我找不到允许我使用protobuf作为传输协议的框架。 Apache ActiveMQ和ActiveBlaze是我能找到的最接近的东西,但文档几乎不存在。
我偶然发现了ActiveMQ protobuf实施的内容,但官方的ActiveMQ文档中没有提醒它(它不在支持的协议中)。
所以我的问题是AMQ是否支持protobuf以及它是如何集成的?
答案 0 :(得分:2)
不,ActiveMQ使用自己的OpenWire协议或Stomp协议。 protobuf位用于底层KahaDB消息存储,而不是线路级部分。您可以将您的protobuf数据存储在BytesMessage中并以这种方式传输,以便您可以在任何一端封送和解组数据。