2016-12-31 96 views
2

我們正在開發一個後端項目,我們已經開始轉向微服務開發。我們已經有了一些服務,其中之一是一個FileService,用於存儲和提取文件(使用底層的Amazon S3存儲)。 FileService還提供文件校驗和,身份驗證和重試機制,並用於跨服務和客戶端共享文件。如何處理微服務中的私人文件

我們現在正在構建一項新服務,並且此服務的一部分私人數據是該服務存儲並用於其業務邏輯的文件,而且我們有兩難選擇是否應使用FileService來存儲和提取文件,或者處理服務內部的文件存儲和讀取。

使用FileService的原因是我們獲得了免費服務中實現的所有功能(重試,校驗和等)。 不使用它的原因是我們希望新服務能夠自主工作,並使用FileService將新服務綁定到它(它必須處理OAuth2身份驗證以獲取/上載文件,它必須每次部署FileService和AuthService這個服務被部署等)。

我想知道是否有人在微服務環境中存儲私人文件的最佳做法,以及利弊的最佳方法是什麼。

回答

1

將正在進行中的FileService組件轉換爲microservice肯定會有優點和缺點。您列出了其中的幾個,但最重要的是,您必須創建適用於您的業務的和域的成本/收益分析矩陣。 這裏沒有「最佳實踐」方法。

成本:

  • 是好的,爲您提高響應時間?因爲現在你將不得不傳輸兩次文件:s3 - > fs microservice - >客戶端微服務
  • 失去節點間連接的情況變得多麼可能?
  • 你的文件有多大?微服務之間不可靠的連接可能會成爲一個問題?
  • 您需要多長時間才能訪問這些文件?也許你會失去本地緩存來加速這個過程的能力?
  • 你還好嗎實施和支持獨立的身份驗證的microService或者你可以在你的防火牆白名單這項服務

優點:

  • 你不必每次都重新部署所有相關組件的存儲文件或重做更改的邏輯。
  • 如果有必要,您可以在未來更輕鬆地遷移到另一個雲提供商,而無需重新部署每個提供商。
  • 它是可重複使用的異構環境,其它的部件可以使用不同的技術堆棧
  • 實現

結論:

沒有辦法回答這些問題,而不與商界人士,討論的風險實際上是在說圍繞這樣的轉變。

+0

謝謝IlliakaillI的回答 –

+0

沒問題@Sahar,考慮將其標記爲已接受 – IlliakaillI