2010-05-07 130 views
5

服務器網絡如何與對方通信?多個服務器之間的通信

例如,如果客戶端A連接到服務器A,如何將其他服務器上的這個通知?我猜你會需要一個「中央」服務器,但它將如何實施?

我對這個真的傻眼了,所以任何幫助將是不錯:)

回答

4

一個分佈式系統的點是,服務器並不需要知道對方的所作所爲。服務器A和服務器B可以是前端服務器,甚至可以共享相同的數據庫,並且仍然能夠獨立工作。您所指的「中央服務器」應該是可能物理上位於第三臺服務器或服務器A或服務器B上的數據庫。

+0

儘管服務器A仍然需要與服務器通信。 – someguy 2010-05-07 16:33:20

0

其他服務器將不知道該通信,除非他們特別要求無論是客戶端1或server1的它 - 如果服務器要求每個其他目前的客戶名單不時。如果所有的服務器共享同一個數據庫,那麼他們也許可以在那裏看到當前的活動,但他們通常不會意識到不涉及他們的通信。

你要買什麼來完成,或者你只是好奇?

+0

我只是好奇。 – someguy 2010-05-07 16:31:07

0

如果服務器位於同一子網上並且您使用的是IPv4,你可以把以太網卡置於混雜模式?他們會看到來自clientA/serverA的流量。但是這開放了一大堆你可能不想打開的蠕蟲(安全,隱私等)。可能一個更可行的解決方案是讓他們共享一個共同的數據庫。每個服務器在處理連接時都會更新數據庫,並且會定期輪詢數據庫以查看正在處理的其他連接。

1

您可能有興趣閱讀本文on An Analysis of the Skype Protocol瞭解大量機器如何在不與所有中央服務器或數據庫連續交談的情況下進行通信的示例。 (當用戶首次登錄時使用中央登錄服務器。)