sprngcloud學習筆記(一)微服務基礎(chǔ)知識

一、微服務基本概念

網(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)

成都定制網(wǎng)站網(wǎng)頁設(shè)計