基于Spring Cloud的微服務(wù)架構(gòu)升級設(shè)計

前言

現(xiàn)在研發(fā)的項目啟動今已近一年之久,期間從項目屬性舔腾、人員規(guī)模、系統(tǒng)定位等方面都發(fā)生了很大的變化搂擦,而且是越變越好稳诚。不過也因為此,項目最初的架構(gòu)設(shè)計已經(jīng)不能滿足現(xiàn)在的需求瀑踢,并隨著時間的推移扳还,詬病越來越多才避、越來越嚴(yán)重。

為了解決這一問題氨距,開發(fā)人員也在努力的嘗試各種辦法桑逝,但總的來說之前的方式更多是在打補丁,暫時或看上去是解決問題了俏让,實質(zhì)上并沒有從本質(zhì)的變化楞遏。基于這一情況舆驶,這一次我們下定決心橱健,用一定的人力、物力去重新定義系統(tǒng)的架構(gòu)——基于Spring Cloud實現(xiàn)微服務(wù)的架構(gòu)沙廉。

本文簡要介紹微服務(wù)及微服務(wù)架構(gòu)的概念,并描述了Spring Cloud的功能臼节,然后基于Spring Cloud的各個組件搭建微服務(wù)的整體架構(gòu)撬陵,并對升級后的系統(tǒng)架構(gòu)進(jìn)行了設(shè)計、約定和說明网缝。

特別說明:鑒于現(xiàn)在的開發(fā)模式采用的是前后端分離的模式巨税,系統(tǒng)問題在后端也較為嚴(yán)重,Spring Cloud也只一個后端治理的框架粉臊,所以本文主要講述的是后端微服務(wù)的架構(gòu)設(shè)計草添,前端的架構(gòu)調(diào)整等Spring Cloud雛形完成后進(jìn)行組合設(shè)計。


[TOC]

1. 微服務(wù)簡述

1.1. 什么是微服務(wù)

微服務(wù)(MicroService)沒有一個官方的標(biāo)準(zhǔn)定義扼仲,ThoughtWorks的首席科學(xué)家馬丁·福勒這樣說:“微服務(wù)架構(gòu)是一種架構(gòu)模式远寸,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)屠凶、互相配合驰后,為用戶提供最終價值。每個服務(wù)運行在其獨立的進(jìn)程中矗愧,服務(wù)與服務(wù)間采用輕量級的通信機(jī)制互相溝通(通常是基于HTTP協(xié)議的RESTful API)灶芝。每個服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨立的部署到生產(chǎn)環(huán)境唉韭、類生產(chǎn)環(huán)境等夜涕。另外,應(yīng)當(dāng)盡量避免統(tǒng)一的属愤、集中式的服務(wù)管理機(jī)制女器,對具體的一個服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文春塌,選擇合適的語言晓避、工具對其進(jìn)行構(gòu)建簇捍。”

http://img.kuqin.com/upimg/allimg/141027/225ZB561-1.png

image_1c3fajgaov1dbt7132p1tu7jkc29.png-99.7kB
image_1c3fajgaov1dbt7132p1tu7jkc29.png-99.7kB

1.2. 微服務(wù)架構(gòu)優(yōu)勢

http://www.primeton.com/img/insideout/jiagou.jpg

image_1c3fb07a11f47mnr1rdn13gn16a82m.png-180.7kB
image_1c3fb07a11f47mnr1rdn13gn16a82m.png-180.7kB

1 復(fù)雜度可控

在將應(yīng)用分解的同時俏拱,規(guī)避了原本復(fù)雜度無止境的積累暑塑。每一個微服務(wù)專注于單一功能,并通過定義良好的接口清晰表述服務(wù)邊界锅必。

由于體積小事格、復(fù)雜度低,每個微服務(wù)可由一個小規(guī)模開發(fā)團(tuán)隊完全掌控搞隐,易于保持高可維護(hù)性和開發(fā)效率驹愚。

2 獨立部署

由于微服務(wù)具備獨立的運行進(jìn)程,所以每個微服務(wù)也可以獨立部署劣纲。當(dāng)某個微服務(wù)發(fā)生變更時無需編譯、部署整個應(yīng)用癞季。

由微服務(wù)組成的應(yīng)用相當(dāng)于具備一系列可并行的發(fā)布流程劫瞳,使得發(fā)布更加高效,同時降低對生產(chǎn)環(huán)境所造成的風(fēng)險绷柒,最終縮短應(yīng)用交付周期志于。

3 技術(shù)選型靈活

微服務(wù)架構(gòu)下,技術(shù)選型是去中心化的废睦。每個團(tuán)隊可以根據(jù)自身服務(wù)的需求和行業(yè)發(fā)展的現(xiàn)狀伺绽,自由選擇最適合的技術(shù)棧。

由于每個微服務(wù)相對簡單嗜湃,所以需要對技術(shù)棧進(jìn)行升級時所面臨的風(fēng)險就較低奈应,甚至完全重構(gòu)一個微服務(wù)也是可行的。

4 容錯

當(dāng)某一組件發(fā)生故障時净蚤,在單一進(jìn)程的傳統(tǒng)架構(gòu)下钥组,故障很有可能在進(jìn)程內(nèi)擴(kuò)散,形成應(yīng)用全局性的不可用今瀑。

在微服務(wù)架構(gòu)下程梦,故障會被隔離在單個服務(wù)中。若設(shè)計良好橘荠,其他服務(wù)可通過重試屿附、平穩(wěn)退化等機(jī)制實現(xiàn)應(yīng)用層面的容錯。

5 擴(kuò)展

單塊架構(gòu)應(yīng)用也可以實現(xiàn)橫向擴(kuò)展哥童,就是將整個應(yīng)用完整的復(fù)制到不同的節(jié)點挺份。當(dāng)應(yīng)用的不同組件在擴(kuò)展需求上存在差異時,微服務(wù)架構(gòu)便體現(xiàn)出其靈活性贮懈,因為每個服務(wù)可以根據(jù)實際需求獨立進(jìn)行擴(kuò)展匀泊。

簡單來說优训,微服務(wù)是基于單體應(yīng)用的新型架構(gòu)模式,可以基于微服務(wù)更好的進(jìn)行自動化測試各聘、運維揣非、監(jiān)控,從而滿足持續(xù)交付躲因,最終實現(xiàn)高質(zhì)量的用戶價值早敬。

1.3. 微服務(wù) VS 當(dāng)前開發(fā)

微服務(wù)的開發(fā)模式和傳統(tǒng)開發(fā)模式有著很大的不同,大致有以下幾點:

  • 分工不同 :現(xiàn)在一個組負(fù)責(zé)一個系統(tǒng)大脉,一個人負(fù)責(zé)系統(tǒng)的一部分搞监;微服務(wù)后可能是一人負(fù)責(zé)一個或多個系統(tǒng)。
  • 架構(gòu)不同:現(xiàn)在更多的從模塊上拆分镰矿、前后端上拆分開發(fā)琐驴;微服務(wù)后將同時從橫向縱向上拆分。
  • 部署方式不同:現(xiàn)在是手工和半自動發(fā)布秤标;微服務(wù)后得自動化運維棍矛。
  • 容災(zāi)不同:現(xiàn)在的系統(tǒng)是一個整體,并且是單點運行抛杨;微服務(wù)后可以多點負(fù)載,還可以隔離故障避免系統(tǒng)整體宕機(jī)荐类。
  • 團(tuán)隊結(jié)構(gòu)不同 2 pizza(6~10人)的小團(tuán)隊
此處輸入圖片的描述
此處輸入圖片的描述

分權(quán)機(jī)制
聯(lián)邦分權(quán)制 -- 對結(jié)果負(fù)責(zé)
職能分權(quán)制 -- 對行為負(fù)責(zé)

2. 技術(shù)選型

2.1. Dubbo

Dubbo是Alibaba開源的分布式服務(wù)框架怖现,它最大的特點是按照分層的方式來架構(gòu),使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)玉罐。從服務(wù)模型的角度來看屈嗤,Dubbo采用的是一種非常簡單的模型,要么是提供方提供服務(wù)吊输,要么是消費方消費服務(wù)饶号,所以基于這一點可以抽象出服務(wù)提供方(Provider)和服務(wù)消費方(Consumer)兩個角色。

Dubbo服務(wù)的官方更新非常不確定季蚂,2014年10月30日停止更新后茫船,最近幾個月低調(diào)開始維護(hù),發(fā)布了5個優(yōu)化版本扭屁。

2.2. 為什么選擇Spring Cloud

Spring Cloud是一系列框架的有序集合算谈。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊料滥、配置中心然眼、消息總線、負(fù)載均衡葵腹、斷路器高每、數(shù)據(jù)監(jiān)控等屿岂,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署。

Spring Cloud的開發(fā)團(tuán)隊專注于企業(yè)級開源框架的研發(fā)鲸匿,不論是在中國還是在世界上使用都非常廣泛爷怀,開發(fā)出通用、開源晒骇、穩(wěn)健的開源框架是他們的主業(yè)霉撵。

Spring Cloud是微服務(wù)架構(gòu)的生態(tài)環(huán)境,考慮到了微服務(wù)的各個方面洪囤,不像阿里的Dubbo 框架只是專注于服務(wù)之間的治理徒坡。

Spring Cloud的社區(qū)熱度非常好,問題修復(fù)也非常及時瘤缩,未來會更加完善和穩(wěn)定喇完。

Spring Cloud也可以較好的兼容python、php等其他語言開發(fā)的微服務(wù)剥啤。因為采用RESTful锦溪。

Spring Cloud與Docker可以完美組合使用。

Spring Cloud 英文官網(wǎng):http://projects.spring.io/spring-cloud/
Spring Cloud 中文文檔:https://springcloud.cc/

2.3. Spring Boot的特性

Spring Boot是一個簡化Spring使用的框架府怯,可以使用少量的配置快速創(chuàng)建一個基于Spring的項目刻诊。Spring Boot主要有如下核心功能:

  • 獨立運行的Spring項目:Spring Boot可以以jar包的形式來運行,運行一個Spring Boot項目我們只需要通過java -jar xx.jar類運行牺丙。

  • 內(nèi)嵌Servlet容器:Spring Boot可以內(nèi)嵌Tomcat则涯,這樣我們無需以war包的形式部署項目。

  • 提供starter簡化Maven配置:使用Spring或者SpringMVC我們需要添加大量的依賴冲簿,而這些依賴很多都是固定的粟判,這里Spring Boot 通過starter能夠幫助我們簡化Maven配置。

  • 自動配置Spring

  • 提供生產(chǎn)就緒型功能峦剔,如指標(biāo)档礁,健康檢查和外部配置

  • 無代碼生成和xml配置

3. 我們微服務(wù)架構(gòu)約定

3.1. 技術(shù)棧

編程語言:Kotlin、JAVA吝沫、Python呻澜、PHP、SQL
構(gòu)建工具:Gradle野舶、Maven
數(shù)據(jù)庫:MySQL易迹、MongoDB、SQL Server
緩存:Redis
消息隊列:RabbitMQ
IDE:IntelliJ IDEA平道、Eclipse
服務(wù)部署:Linux睹欲、Docker、Jenkins、Ansible
微服務(wù)框架:Spring Cloud
后端開發(fā)框架:Spring Boot
前端開發(fā)框架:VUE

3.2. Spring Cloud基礎(chǔ)服務(wù)選型

  • 配置:Spring Cloud Config窘疮,統(tǒng)一配置管理
  • 總線:Spring Cloud Bus袋哼,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署
  • 發(fā)現(xiàn):Eureka,微服務(wù)的注冊與發(fā)現(xiàn)
  • 容錯:Hystrix闸衫,斷路器
  • 網(wǎng)關(guān):Zuul涛贯,提供動態(tài)路由,監(jiān)控,彈性,安全等邊緣服務(wù)的框架
  • 負(fù)載:Ribbon,有多種負(fù)載均衡策略可供選擇
  • 調(diào)用:Feign蔚出,一種聲明式弟翘、模板化的HTTP客戶端
  • 跟蹤:Spring Cloud Sleuth, 日志收集工具包
  • 會話:Spring-Session

3.3. 工具版本約定

名稱 版本 備注
Spring Boot 2.0.0.M6 -
Spirng Cloud Finchley.M4 -
Kotlin 1.2 需保持最新
JAVA 1.8.0_151
Gradle 4.4.1 保持更新
Maven 3.5.2 -
MySQL 5.7.17 -
MongoDB 3.6 -
PHP 7.2.0
Python 3.6.4
Redis 4.0.1 -
Docker 17.09 -
Jenkins 2.89.2 -
CentOS 7.4 -
SQL Server 2008 歷史系統(tǒng)
Ansible 2.3.3.0-1 -
Tomcat 8.5.24 -

3.4 微服務(wù)設(shè)計原則

  • 單一職責(zé)
    每個服務(wù)都很小骄酗,且專注于做一件事情稀余,并且把它做好。
    至于要多小趋翻,有人喜歡100行以內(nèi)睛琳,有人贊成1000行以內(nèi),數(shù)字并不是最重要的踏烙,只要團(tuán)隊覺得合適就好师骗。

  • 輕量通訊
    服務(wù)和服務(wù)之間通過輕量級的機(jī)制實現(xiàn)彼此間的通信。所謂輕量級通信機(jī)制讨惩,通常指基于語言無關(guān)辟癌、平臺無關(guān)的這類協(xié)議,例如XML荐捻、JSON愿待,而不是傳統(tǒng)我們熟知的Java RMI或者.Net Remoting等。

  • 獨立部署
    每個服務(wù)都運行在一個獨立的操作系統(tǒng)進(jìn)程中靴患,這意味著不同的服務(wù)能被部署到不同的主機(jī)上。

  • 康威定律
    請讀:https://yq.aliyun.com/articles/8611
    將1968年由梅爾.康威提出:產(chǎn)品反映了制造該產(chǎn)品的組織結(jié)構(gòu)要出。

http://img2.tbcdn.cn/L1/461/1/74ab78cb5db601e5db68adf61e6dc58f437df4e0

image_1c3fahngk6qfu5l1adm5undoj1s.png-254.1kB
image_1c3fahngk6qfu5l1adm5undoj1s.png-254.1kB

第一定律:Communication dictates design. 組織溝通方式會通過系統(tǒng)設(shè)計表達(dá)出來鸳君。

第二定律:There is never enough time to do something right, but there is always enough time to do it over.
時間再多一件事情也不可能做的完美,但總有時間做完一件事情患蹂。

第三定律:There is a homomorphism from the linear graph of a system to the linear graph of its design organization.
線型系統(tǒng)和線型組織架構(gòu)間有潛在的異質(zhì)同態(tài)特性或颊。

第四定律:The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems.
大的系統(tǒng)組織總是比小系統(tǒng)更傾向于分解。

3.5 微服務(wù)拆分

微服務(wù)的拆分是個復(fù)雜問題传于,簡單來說需要從橫向和縱向多刀去拆囱挑。

3.5.1 橫向拆分

按照不同的業(yè)務(wù)域進(jìn)行拆分,例如訂單沼溜、營銷平挑、風(fēng)控、積分資源等,形成獨立的業(yè)務(wù)領(lǐng)域微服務(wù)集群通熄。

  • 用戶:
  • 訂單:
  • 評論:
  • 組織:
  • 商品:
  • 交易:
  • 搜索:
  • 營銷:
  • 消費者信息:
  • 消費者分布:
  • 消費者畫像:
  • 積分:
  • 訂貨:
  • 賬戶:

3.5.2 縱向拆分

把一個業(yè)務(wù)功能里的不同模塊或者組件進(jìn)行拆分唆涝。例如把公共組件拆分成獨立的原子服務(wù),下沉到底層唇辨,形成相對獨立的原子服務(wù)層廊酣。這樣一縱一橫,就可以實現(xiàn)業(yè)務(wù)的服務(wù)化拆分赏枚。

  • 短信:短信發(fā)送亡驰、記錄、均衡饿幅、防漏凡辱、模板配置
  • 文件:文件上傳、縮略诫睬、下載煞茫、打包、數(shù)據(jù)庫記錄
  • 微信:
  • 日志:
  • 支付:
  • 快遞:快遞查詢摄凡、狀態(tài)訂閱
  • 地圖:地址經(jīng)緯度互轉(zhuǎn)续徽、距離計算、線路推薦
  • 計劃任務(wù):統(tǒng)一的計劃任務(wù)配置及調(diào)度
  • 微信公眾號配置:
  • 微信自動回復(fù):

3.6 架構(gòu)升級步驟

  1. 獨立構(gòu)建微服務(wù)框架亲澡,將現(xiàn)有系統(tǒng)的核心功能分離出來做成基礎(chǔ)微服務(wù)钦扭。如短信模板消息發(fā)送、微信模板消息發(fā)送床绪、文件上傳下載等客情;
  2. 利用這些基礎(chǔ)微服務(wù),解耦現(xiàn)有系統(tǒng)癞己,修改其調(diào)用關(guān)系和依賴方式膀斋;
  3. 通過不斷的微服務(wù)化,逐漸將現(xiàn)有系統(tǒng)分解成多個獨立的微服務(wù)痹雅;
  4. 廢棄現(xiàn)有的系統(tǒng)仰担,使用全新構(gòu)建的微服務(wù)來替代。

3.7. 微服務(wù)總體架構(gòu)圖

構(gòu)件一套完整的微服務(wù)架構(gòu)需要考慮許多問題绩社,包括API Gateway摔蓝、服務(wù)間調(diào)用、服務(wù)發(fā)現(xiàn)愉耙、服務(wù)容錯贮尉、服務(wù)部署、數(shù)據(jù)調(diào)用等朴沿〔卵瑁基于SpringCloud構(gòu)建微服務(wù)架構(gòu)可以通過自動配置和綁定Spring環(huán)境和其他Spring編程模型來實現(xiàn)微服務(wù)。采用Spring Boot應(yīng)用程序提供的集成功能,通過幾個簡單的注釋龄毡,開發(fā)人員可以快速配置和啟用應(yīng)用程序中的常見功能模塊吠卷,并使用久經(jīng)考驗的Netflix組件構(gòu)建大型分布式系統(tǒng)。 提供的微服務(wù)功能模塊包括服務(wù)發(fā)現(xiàn)(Eureka)沦零,斷路器(Hystrix)祭隔,智能路由(Zuul)和客戶端負(fù)載均衡(Ribbon)等。圖2顯示了采用Spring Cloud系列平臺構(gòu)建的微服務(wù)整體架構(gòu)路操。

Spring Cloud架構(gòu)圖.png-141.5kB
Spring Cloud架構(gòu)圖.png-141.5kB

基于Spring Cloud系統(tǒng)的微服務(wù)架構(gòu)平臺

服務(wù)發(fā)現(xiàn)是microservice基礎(chǔ)架構(gòu)的關(guān)鍵原則之一疾渴。服務(wù)注冊中心采用Spring CloudNetflix的項目可以自動注冊服務(wù),也可以通過HTTP接口手動注冊屯仗。默認(rèn)情況下搞坝,Eureka使用客戶端心跳來確定一個客戶端是否活著。也可以另指定DiscoveryClient來傳播當(dāng)前SpringBoot Actuator的應(yīng)用性能的健康檢查狀態(tài)魁袜。

統(tǒng)一的接入服務(wù)接口采用Spring Cloud的Zuul組件桩撮,實現(xiàn)內(nèi)外有別的微服務(wù)調(diào)用。該組件也實現(xiàn)了服務(wù)路由功能峰弹。采用Spring Cloud Netflix來實現(xiàn)服務(wù)的限流和降級店量。

為實現(xiàn)服務(wù)的高可用,保證服務(wù)的容錯和負(fù)載均衡鞠呈,本平臺可采用客戶端負(fù)載均衡(Ribbon)來實現(xiàn)融师。

Spring Cloud Netflix的Hystrix熔斷器組件,具有容錯管理工具蚁吝,旨在通過熔斷機(jī)制控制服務(wù)和第三方庫的節(jié)點旱爆,從而對延遲和故障提供更強(qiáng)大的容錯能力。為保證核心服務(wù)的穩(wěn)定性窘茁,可采用Spring Cloud Netflix的Hystrix組件來實現(xiàn)服務(wù)的服務(wù)的容錯怀伦、限流和降級等功能。

微服務(wù)的安全控制和權(quán)限驗證可采用Spring CloudSecurity來實現(xiàn)山林。對于RESTful空镜,可采用Spring Cloud的Feign 組件,這是一個聲明Web服務(wù)客戶端捌朴。這便得編寫web服務(wù)客戶端更容易,使用Feign 創(chuàng)建一個接口并對它進(jìn)行注解张抄,它具有可插拔的注解支持包括Feign注解與JAX-RS注解砂蔽,F(xiàn)eign還支持可插拔的編碼器與解碼器

4. 微服務(wù)帶來的新問題

  • 一個服務(wù)拆成多大才合適?
  • 多個微服務(wù)能否共享數(shù)據(jù)庫署惯?
    每個微服務(wù)都有自己獨立的數(shù)據(jù)庫左驾,那么后臺管理的聯(lián)合查詢怎么處理?這是大家普遍遇到的一個問題。
    有如下三種處理方案:

嚴(yán)格按照微服務(wù)的劃分來做诡右,微服務(wù)相互獨立安岂,各微服務(wù)數(shù)據(jù)庫也獨立,后臺需要展示數(shù)據(jù)時帆吻,調(diào)用各微服務(wù)的接口來獲取對應(yīng)的數(shù)據(jù)域那,再進(jìn)行數(shù)據(jù)處理后展示出來,這是標(biāo)準(zhǔn)的用法猜煮,也是最麻煩的用法次员。
將業(yè)務(wù)相關(guān)的表放到一個庫中,將業(yè)務(wù)無關(guān)的表嚴(yán)格按照微服務(wù)模式來拆分王带,這樣既可以使用微服務(wù)淑蔚,也避免了數(shù)據(jù)庫各種切換導(dǎo)致后臺統(tǒng)計難以實現(xiàn),是一個折中的方案愕撰。
數(shù)據(jù)庫嚴(yán)格按照微服務(wù)的要求來切分刹衫,以滿足業(yè)務(wù)高并發(fā),實時或者準(zhǔn)實時將各微服務(wù)數(shù)據(jù)庫數(shù)據(jù)同步到 NoSQL 數(shù)據(jù)庫中搞挣,在同步的過程中進(jìn)行數(shù)據(jù)清洗带迟,用來滿足后臺業(yè)務(wù)系統(tǒng)的使用,推薦使用 Mongodb柿究、Hbase 等邮旷。
三種方案在不同的公司我都使用過,第一種方案適合業(yè)務(wù)較為簡單的小公司蝇摸;第二種方案婶肩,適合想在原有系統(tǒng)之上掘猿,慢慢演化為微服務(wù)架構(gòu)的公司昙啄;第三種適合大型高并發(fā)的互聯(lián)網(wǎng)公司。

  • 如何與現(xiàn)有系統(tǒng)結(jié)合使用弄唧、并行開發(fā)啡专、最終替代险毁?
  • 如何避免開發(fā)人員瞎子摸象、管中窺豹们童?
  • 服務(wù)調(diào)用流畔况,服務(wù)編排如何使用?
  • 自動化運維的新挑戰(zhàn)慧库?

5. 結(jié)束語

微服務(wù)架構(gòu)不是絕對的好跷跪,它有一定的使用場景,也有一定的落地難度齐板。結(jié)合我們目前的情景和未來的發(fā)展來說吵瞻,微服務(wù)架構(gòu)是適合我們的葛菇,并且能夠解決很多現(xiàn)有系統(tǒng)的詬病,但是落地的難度也是比較大的橡羞,特別是要結(jié)合已有的各個系統(tǒng)進(jìn)行使用眯停。
Spring Cloud作為穩(wěn)定的微服務(wù)的一站式解決方案,能快速高效地搭建微服務(wù)架構(gòu)卿泽,并且能夠結(jié)合多語言開發(fā)莺债,這個正是我們所需要的。
從今天開始又厉,微服務(wù)的架構(gòu)升級正式開始九府,一部分人直接開始參與,一部分人員間接來參與覆致,但最終我們所有人都會在一個統(tǒng)一的架構(gòu)上進(jìn)行持續(xù)交付侄旬,從而更大的實現(xiàn)用戶價值。

6. 推薦閱讀

《Spring Boot 2精髓:從構(gòu)建小系統(tǒng)到架構(gòu)分布式大系統(tǒng)》
《Spring Cloud與Docker微服務(wù)架構(gòu)實戰(zhàn)》
《Spring Cloud微服務(wù)實戰(zhàn)》
《SpringBoot揭秘:快速構(gòu)建微服務(wù)體系》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末煌妈,一起剝皮案震驚了整個濱河市儡羔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌璧诵,老刑警劉巖汰蜘,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異之宿,居然都是意外死亡族操,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門比被,熙熙樓的掌柜王于貴愁眉苦臉地迎上來色难,“玉大人,你說我怎么就攤上這事等缀〖侠颍” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵尺迂,是天一觀的道長笤妙。 經(jīng)常有香客問我,道長噪裕,這世上最難降的妖魔是什么蹲盘? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮膳音,結(jié)果婚禮上召衔,老公的妹妹穿的比我還像新娘。我一直安慰自己严蓖,他們只是感情好薄嫡,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颗胡,像睡著了一般毫深。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毒姨,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天哑蔫,我揣著相機(jī)與錄音,去河邊找鬼弧呐。 笑死闸迷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俘枫。 我是一名探鬼主播腥沽,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸠蚪!你這毒婦竟也來了今阳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤茅信,失蹤者是張志新(化名)和其女友劉穎盾舌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蘸鲸,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡妖谴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酌摇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膝舅。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妙痹,靈堂內(nèi)的尸體忽然破棺而出铸史,到底是詐尸還是另有隱情,我是刑警寧澤怯伊,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布琳轿,位于F島的核電站,受9級特大地震影響耿芹,放射性物質(zhì)發(fā)生泄漏崭篡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一吧秕、第九天 我趴在偏房一處隱蔽的房頂上張望琉闪。 院中可真熱鬧,春花似錦砸彬、人聲如沸颠毙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛀蜜。三九已至刻两,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滴某,已是汗流浹背磅摹。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留霎奢,地道東北人户誓。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像幕侠,于是被迫代替她去往敵國和親帝美。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容