從你的描述,你必須至少選擇,恕我直言:
(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