Database

數據庫伺服器/連接的代理?

  • January 29, 2018

我來自應用程序開發的角度(我的日常工作),而不是基礎設施或運營的角度,所以如果這是一個完全愚蠢的問題,請告訴我!

我們在應用伺服器前面有代理,這通常對我們很有幫助。這個(硬體/軟體)代理提供了一個抽象的端點(除了其他服務,例如負載平衡/分發),以便我們的客戶始終知道如何連接。

有沒有人有在應用程序伺服器和數據庫之間放置代理的經驗?

似乎有人必須這樣做,尤其是在託管服務提供商或云空間中,但是當我與我們的(企業)基礎架構團隊交談時,他們只是說“不”,儘管我仍在努力理解為什麼

我不明白是否由於數據庫前面的額外抽象層會導致功能或性能問題,或者只是在出現問題時更難排除故障。

任何人都可以分享這方面的想法、經驗或資源嗎?我將不勝感激!

謝謝!

我也喜歡 TomTom 的 DNS 理念。短 TTL,這比你想像的要容易。

但是您當然可以在數據庫前執行代理。例如,SQLProxy 和 HAProxy 可以做到這一點。但是同樣,如果您關心的不是負載平衡或分離讀取和寫入,那麼當您可以使用 CNAME 來完成時,為什麼還要添加這種額外的延遲級別(與代理之間)——我認為參數就是您的操作/系統人員會考慮。

主要問題:

  • 數據庫連接在應用程序伺服器和後端之間更加持久 - 因此很難通過它們進行負載平衡。
  • 代理必須使用協議。那裡有大量的 HTTP 代理。例如,嘗試獲取一個 SQL Server 協議。不需要,沒有市場——沒有產品。
  • 最後,儘管 SQL Server 是這樣,但記憶體是不可能的。並非沒有使結果無效的協議等,這不是任何 SQL 實現的一部分。沒有“如果修改後”標籤。因此,您要麼一無所獲,要麼處理過時的數據——這兩者在該層都是不可接受的。

引用自:https://serverfault.com/questions/184066