這篇文章將為大家詳細講解有關微服務和spring cloud是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
創(chuàng)新互聯(lián)主營鶴城網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app開發(fā)定制,鶴城h5微信小程序定制開發(fā)搭建,鶴城網(wǎng)站營銷推廣歡迎鶴城等地區(qū)企業(yè)咨詢
1, 什么是微服務?
微服務的概念源于2014年3月Martin Fowler所寫的一篇文章“Microservices”。
微服務架構是一種架構模式,它提倡將單一應用程序劃分成一組小的服務,服務之間互相協(xié)調、互相配合,為用戶提供最終價值。每個服務運行在其獨立的進程中,服務與服務間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful API)。每個服務都圍繞著具體業(yè)務進行構建,并且能夠被獨立地部署到生產環(huán)境、類生產環(huán)境等。另外,應盡量避免統(tǒng)一的、集中式的服務管理機制,對具體的一個服務而言,應根據(jù)業(yè)務上下文,選擇合適的語言、工具對其進行構建。
微服務是一種架構風格,一個大型復雜軟件應用由一個或多個微服務組成。系統(tǒng)中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在所有情況下,每個任務代表著一個小的業(yè)務能力。
2,架構特點:
3,微服務vs傳統(tǒng)開發(fā)
使用微服務有一段時間了,這種開發(fā)模式和傳統(tǒng)的開發(fā)模式對比,有很大的不同。
分工不同,以前我們可能是一個一個模塊,現(xiàn)在可能是一人一個系統(tǒng)。
架構不同,服務的拆分是一個技術含量很高的問題,拆分是否合理對以后發(fā)展影響巨大。
部署方式不同,如果還像以前一樣部署估計累死了,自動化運維不可不上。
容災不同,好的微服務可以隔離故障避免服務整體down掉,壞的微服務設計仍然可以因為一個子服務出現(xiàn)問題導致連鎖反應。
1. 簡介
Spring Cloud項目的官方網(wǎng)址:http://projects.spring.io/spring-cloud/
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。Spring Cloud并沒有重復制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
2,Spring Cloud體系介紹
名稱 | 簡介 |
spring-cloud-aws | 用于簡化整合Amazon Web Service的組件 |
spring-cloud-bus | 事件、消息總線,用于傳播集群中的狀態(tài)變化或事件。 |
spring-cloud-cli | 用于在Groovy平臺創(chuàng)建Spring Cloud應用。 |
spring-cloud-commons | 服務發(fā)現(xiàn)、負載均衡、熔斷機制這種模式為Spring Cloud客戶端提供了一個通用的抽象層。 |
spring-cloud-contract | 契約測試。 |
spring-cloud-config | 配置管理工具,支持使用git、svn等存儲配置文件。并在支持客戶端配置信息的刷新,加密解密配置內容等。 |
spring-cloud-netflix | 核心組件,對多個Netflix OSS開源套件進行整合。 |
spring-cloud-security | 安全工具包。 |
spring-cloud-cloud foundry | 整合Pivotal Cloudfoundry(Vmware推出的業(yè)界第一個開源PaaS云平臺)支持。 |
spring-cloud-consul | 服務發(fā)現(xiàn)與配置管理工具 |
spring-cloud-sleuth | Spring Cloud應用的分布式跟蹤實現(xiàn)。 |
spring-cloud-stream | 通過redis、RabbitMQ、Kafka實現(xiàn)的消息微服務。 |
spring-cloud-zookeeper | 基于ZooKeeper的服務發(fā)現(xiàn)與配置管理組件。 |
spring-boot | 簡化Spring應用的初始搭建以及開發(fā)過程,springCloud開發(fā)的基礎 |
spring-cloud-task | 用于快速構建數(shù)據(jù)處理的應用。 |
spring-cloud-vault | Spring Cloud Vault Config為分布式系統(tǒng)中的外部化配置提供客戶端支持。 |
spring-cloud-gateway | Spring Cloud網(wǎng)關相關的整合實現(xiàn)。 |
Spring Cloud Data Flow | 一個云本地程序和操作模型,組成數(shù)據(jù)微服務在一個結構化的平臺上。 |
Spring Cloud Connectors | 便于PaaS應用在各種平臺上連接到后端像數(shù)據(jù)庫和消息經紀服務。 |
Spring Cloud … | 數(shù)量還在一直增加… |
3,Spring Cloud 核心功能:
分布式/版本化配置
服務注冊和發(fā)現(xiàn)
路由
服務和服務之間的調用
負載均衡
斷路器
分布式消息傳遞
通過上兩張圖,我們來了解一下各組件配置使用運行流程:
1、請求統(tǒng)一通過API網(wǎng)關(Zuul)來訪問內部服務.
2、網(wǎng)關接收到請求后,從注冊中心(Eureka)獲取可用服務
3、由Ribbon進行均衡負載后,分發(fā)到后端具體實例
4、微服務之間通過Feign進行通信處理業(yè)務
5、Hystrix負責處理服務超時熔斷
6、Turbine監(jiān)控服務間的調用和熔斷相關指標
7、Sleuth進行請求的鏈路跟蹤監(jiān)控
微服務是一種架構的理念,提出了微服務的設計原則,從理論為具體的技術落地提供了指導思想。Spring Boot是一套快速配置腳手架,可以基于Spring Boot快速開發(fā)單個微服務;Spring Cloud是一個基于Spring Boot實現(xiàn)的服務治理工具包;Spring Boot專注于快速、方便集成的單個微服務個體,Spring Cloud關注全局的服務治理框架。
關于微服務和spring cloud是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。