什么是微服務,SpringBoot和SpringCloud的關系和區別


什么是微服務?

就目前而言對於微服務業界沒有一個統一的,標准的定義.但通常而言,微服務是一種架構模式或者說是一種架構風格,它提倡單一應用程序划分為一組小的服務,每個服務在其獨立的自己的進程中,服務之間相互協調,互相配合,為用戶提供最終價值.服務之間采用輕量級的通信機制互相溝通(基於Http的Restful API)每個服務都圍繞着具體的業務進行構建,並且能夠被獨立的部署到生產環境,類生產環境進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數據存儲.
優點
  每個服務足夠內聚,足夠小,代碼容易理解這樣能聚焦一個指定的業務功能或業務需求
  開發簡單、開發效率提高,一個服務可能就是專一的只干一件事。
  微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。
  微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
  微服務能使用不同的語言開發。
  易於和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins, Hudson, bamboo 。
  微服務易於被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。
  微服務允許你利用融合最新技術。
  微服務只是業務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。
  每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。

缺點
  開發人員要處理分布式系統的復雜性
  多服務運維難度,隨着服務的增加,運維的壓力也在增大
  系統部署依賴
  服務間通信成本
  數據一致性
  系統集成測試
  性能監控……

微服務與微服務架構?

  • 微服務強調的是服務的大小,他關注的是以點,是具體解決某一個問題/提供落地對象服務的一個服務應用,
  • 狹義的看,可以看做Eclipse中的一個個微服務工程.
  • 微服務架構為一種架構模式.他提倡將單一應用程序分成一組小的服務,服務之間互相協調,互相配合,為用戶提供最終價值.
  • 每個服務運行在其獨立的進程中,服務於服務間采用輕量級的通信機制互相協作(通常是Http 的Restful API) 每一個服務
  • 都圍繞着具體業務進行構建,並且能夠被獨立的部署到生產環境,類生產環境中.另外,應當盡量避免統一的,集中式的服務管理機制,
  • 對具體的一個服務而言,應根據業務上下文,選擇合適的語言,工具對其進行構建.

一、SpringBoot和SpringCloud簡介

1、SpringBoot:是一個快速開發框架,通過用MAVEN依賴的繼承方式,幫助我們快速整合第三方常用框架,完全采用注解化(使用注解方式啟動SpringMVC),簡化XML配置,內置HTTP服務器(Tomcat,Jetty),最終以Java應用程序進行執行。
2、SpringCloud: 是一套目前完整的微服務框架,它是是一系列框架的有序集合。它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用SpringBoot的開發風格做到一鍵啟動和部署。
  • 基於SpringBoot提供了一套微服務(microservices)解決方案,包括服務注冊與發現,
  • 配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於NetFlix的開營組件做 高度抽象之外,還有一些選型中立了的開源組件.
  • 分布式微服務架構下的一站式解決方案,是各個微服務架構落地技術的結合體,俗稱為微服務全家桶.

二、SpringBoot和SpringCloud的關系與區別

1、SpringBoot只是一個快速開發框架,使用注解簡化了xml配置,內置了Servlet容器,以Java應用程序進行執行。
2、SpringCloud是一系列框架的集合,可以包含SpringBoot。
  • 1.SpringBoot專注於方便的開發單個個體微服務
  • 2.SpringCloud是關注於全局的微服務協調治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來。為各個微服務之間提供配置管理,服務發現,斷路器,路由,微代理,事件總線,決策競選,分布式會話等集成服務.
  • spring boot使用了默認大於配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。
  • 3.SpringBoot可以離開SpringCloud單獨使用,而SpringCloud離不開SpringBoot

三、SpringBoot是微服務框架嗎?

1、SpringBoot只是一個快速開發框架,算不上微服務框架。
2、SpringCloud+SpringBoot 實現微服務開發。具體的來說是,SpringCloud具備微服務開發的核心技術:RPC遠程調用技術;SpringBoot的web組件默認集成了SpringMVC,可以實現HTTP+JSON的輕量級傳輸,編寫微服務接口,所以SpringCloud依賴SpringBoot框架實現微服務開發。

SpringMVC在3.0開始支持采用注解方式啟動,所以可以不再配置傳統的XML配置文件。

原文鏈接: https://blog.csdn.net/weixin_42315600/article/details/84134094


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM