一、微服務基本概念
網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計體驗!已為白烏魚等企業(yè)提供專業(yè)服務。
近幾年比較火的架構(gòu)設(shè)計大概就是微服務架構(gòu)了吧,在學習spring cloud之前,首先了解一下什么是微服務架構(gòu)。簡單地說,微服務架構(gòu)就是系統(tǒng)架構(gòu)設(shè)計的一種風格,他的主旨是將原本獨立的系統(tǒng)拆分成多個小型服務,這些小服務都是在各自獨立的進程中運行,服務之間通過HTTP或者RESTful API進行通信協(xié)作,被拆分的小服務都圍繞系統(tǒng)的某一項或者一些耦合度較高的業(yè)務進行構(gòu)建,并且每個服務都有自身的數(shù)據(jù)存儲以及業(yè)務開發(fā),自動化測試案例以及獨立部署機制。
微服務與單體系統(tǒng)的區(qū)別主要就是在單體系統(tǒng)中,由于項目需求的不斷擴充,會導致我們原本的系統(tǒng)原來越臃腫,如果出現(xiàn)一些小問題要不得不對整個系統(tǒng)進行服務更新,并且在修改問題有可能引發(fā)其他模塊出現(xiàn)問題。這不是我們希望看到的。而微服務架構(gòu)是將哥哥功能模塊分別部署,化整為零,當我們某個模塊需要更新只需要更新對應的服務即可,不需要對整個系統(tǒng)進行部署更新,使系統(tǒng)的穩(wěn)定性大大的提高。將服務進行組件化這是微服務架構(gòu)最大的優(yōu)點。
雖然微服務有很多優(yōu)點,但相應的要面臨原本系統(tǒng)架構(gòu)中不存在的問題,如
1、接口一致性:雖然我們拆分了服務,但是邏輯上的依賴并不會刪除,只是從單體的代碼依賴,變?yōu)榉臻g的通信以來,在各個服務的通信我們應該保持通信協(xié)議的一致性,否則當我們對原本接口進行修改,相應的服務調(diào)用方也要進行修改。
2、分布式的復雜性:由于拆分后的服務都是獨立部署各自運行的,所以所有分布式的問題都要考慮到,例如網(wǎng)絡超時,分布式事物以及消息。
3、運維的挑戰(zhàn):在微服務中,因為將整個服務拆分成許多個服務單獨部署,導致運維工作量會成倍的增加,將這些程序井然有序的進行組織拍編對運維來說新增了很多挑戰(zhàn)。
雖然微服務有這些問題,但實現(xiàn)敏捷開發(fā)以及自動化部署等優(yōu)點依然被廣大優(yōu)秀架構(gòu)師和開發(fā)者們青睞,同事這些問題也是架構(gòu)師們努力實現(xiàn)的目標。
在我們實施微服務架構(gòu)時,都系統(tǒng)讓每一個服務來實現(xiàn)管理其自己的數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)管理的去中心化。雖然去中心化可以讓數(shù)據(jù)管理更加細致,通過采用合適的技術(shù)可讓數(shù)據(jù)存儲和性能達到最優(yōu)。但是,微服務中最大的問題還是數(shù)據(jù)的一致性。分布式本身實現(xiàn)難度非常大,所以在為服務架構(gòu)中,我們更強調(diào)的是服務之間進行無實物的為調(diào)用,對于數(shù)據(jù)一致性,沒我們只要求數(shù)據(jù)在最后處理的時候的狀態(tài)是一致的即可,如果處理過程中發(fā)現(xiàn)錯誤,通過補償機制或者容錯線程來處理,即在微服務中我們要保證數(shù)據(jù)的最終一致性。
二、框架選型
通過上面的一些介紹相信大家對微服務框架有了相應的理解,接下來就對如何構(gòu)架微服務進行框架選型。在之前,公司一直使用的是spring + netty進行對微服務進行構(gòu)建,服務之間用過api方式進行調(diào)用。保證數(shù)據(jù)一致性通過容錯線程來處理,zk來進行配置管理,整體來說架構(gòu)還是比較穩(wěn)定。但是有沒有一個成型的微服務框架呢?(畢竟對自己的一套東西,信心還是不足的,哈哈。)然后問了一下度娘
,發(fā)現(xiàn)了 spring cloud這個神器(好吧,其實就是把雜七雜八的都砸進去了)。
三、spring cloud簡介
spring cloud 是基于spring boot實現(xiàn)的微服務架構(gòu)開發(fā)工具。他集成了微服務架構(gòu)中所使用的配置管理,服務治理,斷路器,只能路由,微代理,控制總線,全局鎖,決策競選,分布式回話和集群狀態(tài)
管理等操作提供了一種簡單的開發(fā)方式。
他所集成常用的工具如下
Spring Cloud Config | 配置管理工具 | |
Spring Cloud NetFlix | 核心組件,對開源組件進行的整合 | |
Eureka | 服務治理組件,服務注冊,服務發(fā)現(xiàn)等 | |
Hystrix | 容錯管理組件,實現(xiàn)斷路器 | |
Ribbon | 負載均衡 | |
Feign | 聲明式服務調(diào)用組件 | |
Zuul | 網(wǎng)管組件 | |
Archaius | 外部配置化組件 | |
Spring Cloud Bus | 事件消息總線,用于傳播集群中的狀態(tài)變化,如刷新配置 | |
Spring Cloud Cluster | 選舉算法和通用狀態(tài)模式實現(xiàn) | |
Spring Cloud Consul | 服務發(fā)現(xiàn)與配置管理工具 | |
Spring Cloud Stream | 緩存和mq的消費為服務 | |
Spring Cloud AWS | 簡化整合AWS組件 | |
Spring Cloud Security | 安全工具包 | |
Spring Cloud Zookeeper | zookeeper組件 |
從此可見,它集成了我們微服務框架中常用的工具,而且使用spring boot可以更快的對微服務進行構(gòu)建,接下來的時間,將對spring cloud的各個組件進行學習與深究。增強對微服務框架的設(shè)計與理解。
網(wǎng)頁題目:sprngcloud學習筆記(一)微服務基礎(chǔ)知識
分享URL:http://muchs.cn/article20/ihioco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、Google、電子商務、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)