从你的描述,你必须至少选择,恕我直言:
(1)利用序列化部分和序列化的消息写入队列。侦听器将它们反序列化并将它们馈送到(本地)处理器实例,从而触发其余的处理。
(2)编写一个专用的传输器来支持ActiveMQ。这可能有助于更好地封装序列化/反序列化的东西,并为客户端/处理器提供通常的调用接口。
两个多提示:
- 看一看THRIFT-812,这表明与ZeroMQ
- 组合看一看为
oneway
方法节俭文档。你会发现它们对于消息排队场景非常有用。
我所说的输入数据送入当地的处理器实例是什么意思?好的,这是我之前写过的一段代码,用于证明这一点。它是用Delphi编写的,但应该足够简单,使您可以将它翻译成您选择的任何其他语言。请求数据在此特例中传递并预期为JSON,因此是JSON协议。
class procedure TTextToolJsonServer.Process(const stmIn, stmOut : TStream);
var handler : Samples.TTextTool.Iface;
processor : IProcessor;
protIn, protOut : IProtocol;
begin
protIn := TJSONProtocolImpl.Create(
TStreamTransportImpl.Create(
TThriftStreamAdapterDelphi.Create(stmIn, FALSE), nil));
protOut := TJSONProtocolImpl.Create(
TStreamTransportImpl.Create(
nil, TThriftStreamAdapterDelphi.Create(stmOut, FALSE)));
handler := TTextToolHandler.Create;
processor := Samples.TTextTool.TProcessorImpl.Create(handler);
processor.Process(protIn, protOut);
end;
您可以扩展为他们提供本地处理器实例吗? – Swamp56
编辑到答案中。 – JensG