我正在嘗試使用java實現與客戶端一樣的服務。我正在使用Apache thrift進行RPC調用。該服務使用鍵值存儲。我試圖在鍵值存儲中提供服務容錯以及一致性和數據複製。Apache Thrift:具有同步和異步方法的服務器,有可能嗎?
對於例如:假設在同一時間,有id爲運行10臺服務器 S1,S2,S3等,以及一個客戶端調用放(鍵,值)對S1,S1現在保存 這個值和通話在所有其餘服務器 上放置一個RPC(鍵值)用於數據複製。我希望服務器方法保存並將 成功返回給客戶端,並在其餘9臺服務器上啓動帶有異步調用的線程,以便 複製期間不會阻止客戶端。
自動生成的代碼有Iface和AsyncIface,我目前在ServerHandler類中實現了Iface。
我的目標是向客戶端公開一個後端服務器,並在客戶端和服務器之間進行正常(阻塞)調用,並在服務器之間進行異步調用。將一次運行多個客戶端 - 服務器對。
據我所知,數據複製模型很粗糙,但我試圖學習分佈式系統。
有人可以幫我一個例子,我怎麼能做到這一點。
而且,如果你認爲我的設計是有缺陷的,也有在 更好的方法,我可以使用Apache節儉請不要 點出實現數據複製。
謝謝。
http://stackoverflow.com/questions/18911972/how-to-handle-requests-using-different-thread-pools-in-thrift看來此人有做了同樣的事情,但我不知道如何 – user3427096
Multiplex是不同的。它允許在同一傳輸棧上運行多個服務。這可能不是你正在尋找這個問題。但是,如果你想結合公共服務和內部通信服務,但是(a)你不會被強迫這樣做,並且(b)你可能想要爲公共和內部服務使用不同的協議/傳輸。 – JensG