javascript
微服务架构与SpringCloud
微服務架構簡述
通常而言,微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃分成一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間互相協調、互相配合為用戶提供最終價值。服務之間采用輕量級的通信機制互相溝通(通常是基于HTTP的Restful API) 每個服務否圍繞著具體業務進行構建,并且能夠被獨立地部署到生產環境、類生產環境等。另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以選擇不同的數據存儲。
微服務化的核心就是將傳統的一站式應用,根據業務拆分為一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的處理過程,類似進程概念,能夠自行單獨啟動或銷毀,甚至可以擁有自己獨立的數據庫。
分布式系統,各個模塊分出多個系統服務,各自擁有一個進程,獨立部署
微服務
微服務強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題/提供落地對應服務的一個服務應用,狹義的看,可以看做Eclipse 里面的一個微服務工程或者Module
微服務架構的優缺點
優點:
- 每個服務足夠內聚,足夠小,代碼容易理解這樣能聚焦一個指定的業務功能或者業務需求
- 開發簡單、開發效率提高,一個服務可能就是專一的只干一件事
- 微服務能夠被小團隊單獨開發,這個小團隊是2到5人
- 微服務架構是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的
- 微服務是使用不同的語言開發
- 微服務易于和第三方集成,允許容易且靈活的方式集成自動部署,通過持續集成工具,如:Jenkins、Hudson、Bamboo
- 微服務易于被一個開發人員理解、維護
- 微服務只是業務邏輯的代碼,不會和Html和css 或其他頁面組件混合。
缺點:
- 開發人員要處理分布式系統的復雜
- 多服務運維難度隨著服務的增加,運維的壓力也在增加
- 系統部署的依賴
- 服務間通信成本
- 數據的一致性
- 系統集成測試
- 性能監控
微服務落地技術
各微服務架構對比
SpringCloud
SpringCloud,基于SpringBoot提供了一套微服務解決方案,包括服務注冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基于NetFlix的開源組件做高度抽象封裝之外,還有一些選型中立的開源組件。
SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,SpringCloud為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,它們都可以用SpringBoot的開發風格做到一鍵啟動和部署。
SpringBoot并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包
SpringCloud 組件
可參考SpringCloud 中文文檔傳送門查看SpringCloud 生態圈
總結
以上是生活随笔為你收集整理的微服务架构与SpringCloud的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Map集合使用get方法返回null抛出
- 下一篇: rust(66)-rust智能指针与类型