![](/img/trans.png)
[英]In a NodeJs microservices Architecture, should I use a package.json per service?
[英]Should I be moving to a microservices based architecture?
我正在研究整體系統。 它的所有代碼都在一個存儲庫中(Web API和后台工作程序)。 系統使用Nodejs編寫,MongoDB(Mongoose)用作數據存儲。 我的目標是為項目的發展開辟一條新道路。 起初,我想知道是否可以轉向基於微服務的體系結構。
整體架構會產生一些問題:
使用微服務的優勢非常明顯:
查看當前代碼,我注意到在所有項目中都使用了Mongoose ODM(對象文檔映射器)模型來創建,查詢和更新數據庫中的模型。 作為良好編程的原則,應該抽象所有與數據庫的交互。 業務邏輯不應泄漏到其他系統層。 我可以通過引入REPOSITORY模式(域驅動設計)來做到這一點。 盡管代碼仍在Web api和后台工作人員之間共享,但這並不是一項艱巨的任務。
如果我決定將存儲庫提取到獨立的微服務中,則會出現很多問題:
由於該項目尚處於初期階段,而且我是唯一的開發人員,因此轉向基於微服務的體系結構似乎有些過頭。 也許我應該考慮其他方法?
將業務邏輯和與數據庫的交互提取到單獨的存儲庫中,並在服務之間共享以避免服務之間的復雜通信協議?
根據我過去幾年在微服務領域的工作經驗,在當前情況下這似乎有些過頭,但從長遠來看會有所收獲。
根據上述信息,我的想法是:
通信-使用MSA,服務之間的通信成為關鍵,因此通用做法是保留面向消息的通信方法(有關反應式系統和反應式編程的更多信息,請參見)。
PaaS解決方案-有多種可用的PaaS解決方案,您可以應用這些解決方案,這樣您就不必擔心容器管理,容器編排,自動擴展,配置管理,日志管理和監視等所有其他方面。 PaaS解決方案:
https://fabric8.io/-由RedHat
https ://openshift.io-通過RedHat
雲供應商平台 -AWS,Azure和Google Cloud從部署角度來看,它們都對Microservices App都提供了特定的支持,如果您不想在組織中部署PaaS解決方案,我們可以將其用作替代解決方案。
希望這些指針可以幫助您了解整體情況,以便您可以為將來的需求構建體系結構。
我正在開發一個整體系統...我的目標是為項目的發展樹立新的道路。 起初,我想知道是否可以轉向基於微服務的體系結構。
您需要以什么方式發展項目? 它會主要是錯誤修正,添加功能,提高性能和/或可伸縮性嗎? 您是否期望將來有其他開發商合作? 您目前有維護問題嗎? 在指導您的選擇時,應考慮這些問題(以及更多)的答案。
您似乎正在圍繞微服務架構的優缺點來做家庭作業,因此,如果您沒有問自己為什么甚至一開始都這樣做,那么現在是這樣做的好時機。
也許我應該考慮其他方法?
總是有個好老的不休息-怎么了;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.