簡體   English   中英

Web 門戶從 Web 服務或數據庫中獲取數據 - 架構模式

[英]Web portal taking data from web service or database - architecture pattern

我正在研究當前基於以下架構構建的項目:

1)第一個解決方案

  • 具有基於 Entity Framework 5 的所有數據庫邏輯 (DAL) 的項目
  • WebAPI 項目負責向客戶 Web 門戶和智能手機應用程序提供數據

2)第二種解決方案

  • 作為客戶 Web 門戶的 MVC4 項目

客戶 Web 門戶和 WebAPI 位於同一台服務器上。 WebAPI 直接訪問數據庫,而客戶門戶網站通過 WebAPI 訪問它。 選擇此架構的原因是為了縮短開發時間,因為 Web 門戶和智能手機應用程序正在調用 85% 的相同 Web 服務。 但是,我非常擔心這是多么好的性能架構。 我認為客戶 Web 門戶應該直接訪問數據庫,這將是更有效的方式。

對此有何想法?

架構總是很棘手,它總是在不同的因素之間做出妥協,比如開發速度、可維護性、性能和可擴展性。 所以,你需要權衡所有的利弊。

通過 WebAPI 訪問數據庫

1 . 肯定會引入一些性能開銷。 但是多少錢? 假設通過額外的包裝器 (WebAPI) 傳遞您的調用,每次調用將花費您大約 2-3 毫秒的額外時間,並且總共需要大約 200MB 的額外 RAM。 我認為,這不是一個真正的問題,但您更了解所有細節,這取決於您。

2 . 該解決方案可以從使用緩存中獲得一些好處。 如果您將 IIS 配置為緩存對 WebAPI 的請求,那么:WebAPI 客戶端和門戶都會提高性能。

直接通過 DAL 訪問數據庫

1 . 從理論上講,您要為您的數據庫引入兩個需要處理的入口點。 如果您需要添加一些必須由 WebAPI 客戶端和您的門戶使用的邏輯,並且該邏輯是特定於 Web 的(例如,與用戶會話相關的某些內容),該怎么辦? 您不應該將它添加到 DAL,而是需要使用另一個庫添加另一個層,該庫將被兩者使用:WebAPI 和您的門戶。 如果您唯一的訪問點是 WebAPI,那么您只需修改 WebAPI 即可獲得結果。

總結一下:

這些只是一些優點和缺點。 但是如果你的項目不是很大,如果它不打算承受很高的負載,那么我會考慮的唯一因素就是開發成本。 如果將 WebAPI 用作單個入口點會更快,那么就使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM