[英]Microservices Architecture in NodeJS
你的設計似乎沒問題。 我們還使用API網關方法構建我們的微服務項目。 包括網關服務(GW)在內的所有服務都是容器化(我們使用 docker )Java應用程序( spring boot或dropwizard )。 也可以使用nodejs構建類似的體系結構。 與您的問題相關的一些主題:
你的設計還可以。
如果您的API網關需要實現(可能就是這種情況)CAS /某種Auth(通過其中一種服務 - 即某種用戶服務),還應跟蹤所有請求並修改標頭以承載請求者元數據(對於內部ACL /作用域使用) - 您的API網關應該在Node中完成,但應該在Haproxy下,它將關心負載平衡/ HTTPS
發現處於正確的位置 - 如果你找到一個適合你的設計的東西,但是領事 。
您可以使用consul-template或將自己的微發現框架用於服務和API網關,以便它們在引導時共享端點數據。
ACL /授權應該按服務實現,API Gateway的第一個請求應該受所有授權中間件的約束。
使用API網關跟蹤請求是明智的,為每個請求提供請求ID,以便在“內部”系統中跟蹤生命周期。
我會添加Redis用於消息傳遞/工作者/隊列/快速內存中的東西,比如緩存/緩存失效(你無法處理所有的MS架構) - 或者如果你有更多的分布式事務和很多消息傳遞,那就選擇RabbitMQ
在容器(Docker)上旋轉所有這些,這樣就更容易維護和組裝。
至於BI為什么你需要一個服務呢? 您可以擁有外部ELK Elastisearch,Logstash,Kibana)並同時擁有儀表板,日志聚合和巨大的大數據倉庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.