2011-07-02 81 views
0

我正在編寫複雜業務解決方案的規範;它基本上是一套Web應用程序,都在他們自己的服務器上。我希望他們是獨立的,所以如果有問題或變得非常忙,其餘的都不會受到影響。PHP:如何最好地在兩臺服務器之間進行通信

將會有一箇中央服務器作爲應用程序的支付網關,併爲應用程序本身提供數據。數據很少;用戶ID,他們支付了該應用程序等

這個想法是,當一個應用程序被購買,然後我們只是將該數據傳遞到有問題的應用程序。

問題是如何做到這一點,而不是阻止用戶的體驗,而我們等待應用服務器的共鳴。這個想法是將它輸入到一個隊列中並在一個cron作業中逐一處理它們。不過,有人擔心這個速度不夠快,用戶在訪問應用之前可能需要等待。

另一個想法是,當用戶嘗試使用它時,應用程序只是聯繫主服務器。然後主服務器可以批准用戶,這將保存在應用服務器數據庫中,因此不必再次檢查。

你們都對這些想法有什麼看法?有沒有一個明顯的最好的方法呢?

該系統應該能夠擴展到100個以上的應用程序,並且每小時應用程序購買數以萬計。

非常感興趣,看看你們都在想什麼!非常感謝

回答

0

我有一個類似但略有不同的情況,支持一個潛在的競爭對手......我瘋了嗎? haha

對於這個話題,我們通常使用cURL來連接服務器請求,特別是如果我們不希望信息公開,我們爲付款處理,賬戶功能和財務功能設置了特定的VPS,這將會僅發佈到集中式mySQL數據庫以獲取訪問信息,因此它將支持單個登錄多個服務器羣集上的多個應用程序。

爲了確保用戶立即移動到他們想要的應用程序並且它能正常工作,我們使用cURL發佈初始數據,在特定應用程序數據庫中創建默認記錄,然後設置PHP標頭重定向,用戶到單一登錄請求的應用程序已經在早期執行的cURL帖子的一部分中工作。

訪問密鑰對我們很重要,因爲它使單一登錄變得安全。它是每個帳戶生成一次,即使我們可以,如果有任何安全違規,也永遠不會更新。然後,我們在用戶認證過程中使用cURL,以確保用戶仍然使用其密鑰和用戶標識登錄。關鍵是永遠不會公開傳遞,但始終使用將其隱藏在PHP中的cURL方法發佈到服務器端。

我希望這會有所幫助。

相關問題