一、面試題
1. springCloud 和 dubbo 有什麼區別?
2. 兩個負載均衡,如何選擇?(Ribbon和Feign)
3. 什麼是服務雪崩,服務扇出,服務降級?
二、微服務概述
1. 什麼是微服務?
1.)馬丁. 福勒(微服務的提出者)這麼說:https://martinfowler.com/articles/microservices.html
微服務架構風格[1]是一種將單個應用程序拆分爲一組小型服務的方法(通常按照業務拆),每個小型服務都在自己的進程中運行,並與輕量級機制(通常是HTTP RESTful API)進行通信。這些服務圍繞業務功能構建,可通過全自動部署機制獨立部署。這些服務至少集中管理,可以用不同的編程語言編寫,並使用不同的數據存儲技術。
2. 微服務和微服務架構?
1.)微服務:
具體解決某個問題/任務/功能,可以狹隘的看作開發工具裏的一個 module。
2.)微服務架構:
微服務架構是一種架構模式。它將單一程序劃分成小的服務,服務之間相互協調、相互配合。每個服務運行在其獨立的進程中,服務和服務質檢採用輕量級的通信機制相互協作(通常基於HTTP協議的RestFul API)。另外,儘量避免統一的、集中式的服務管理機制。
3.微服務的優缺點?
1.)優點:
(1)高內聚,代碼容易聚焦一個指定的業務功能;(2)開發簡單、開發效率高;(3)鬆耦合;(4)代碼階段和部署階段都是獨立的;跨語言;(5)允許靈活的自動部署,持續集成。(6)前後端分離開發。(7)每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以有統一的數據庫。
2.)缺點:
(1)運維人員難度加大。(2)開發人員需要處理分佈式系統的複雜性。(3)系統部署的依賴性。(4)通信超時。(5)數據的一致性。
4.微服務技術棧有哪些?
微服務條目 | 落地技術 |
---|---|
服務開發 | SpringBoot、Spring、SpringMVC |
服務配置和管理 | Netfilex 的 Archaius、阿里的 Diamond |
服務註冊與發現 | Eureka、Consul、Zookeeper 等 |
服務調用 | Rest、RPC、gPRC(谷歌) |
服務熔斷器 | Hystrix、Envoy 等 |
負載均衡 | Ribbon、Nigix 等 |
服務接口調用(客戶端調用服務簡化工具) | Feign 等 |
消息隊列 | KafKa、ActiveMQ、ActiveMQ 等 |
服務配置中心管理 | SpringCloudConfig、Chef等 |
服務路由(API網關) | Zuul等 |
服務監控 | Zabbix、Nagios、Metrics、Spectator等 |
全鏈路追蹤 | Zipkin,Brave、Dapper等 |
服務部署 | Docker、OpenStack、Kubernetes等 |
數據流操作開發包 | SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發送接收消息) |
事件消息總線 | Spring Cloud Bus |
… | … |
5.爲什麼選擇SpringCloud?
1.)選型依據。
調試a.整體解決方案和框架成熟度。
調試b.社區熱度.
調試c.可維護性。
調試d.學習曲線。
2.)當前用的微服務架構有哪些。
調試a.阿里Dubbo/HSF。
調試空Gdubbo:2012年解散,17年重新啓用,這五年內springCloud站起來了
調試空GHSF:HignSpeed FrameWork 江湖人稱:好舒服
調試d.京東的JSF。
調試c.新浪微博的Motan。(江湖人稱:茅臺)
調試d.噹噹網的DubboX。(噹噹網被海航集團收購)
三、SpringCloud入門概述。
1.SpringCloud是什麼?
給開發者的一套簡單易懂,易部署和易維護的分佈式系統開發工具包。微服務思想落地的解決方案的集合體(一套帶走)。
springCloud的版本號,用的英國倫敦的地鐵站的名字。
2.Dubbo和SpringCloud的對比。
1.活躍度對比。
dubbo 活躍度傳送門
springCloud 活躍度傳送門
2.技術棧對比。
Dubbo | SpringCloud | |
---|---|---|
服務註冊中心 | Zookeeper | Spring Cloud Netflix Eureka |
服務調用方式 | RPC | Rest API |
服務監控 | Dubbo-monitor | SpringBoot Admin |
斷路器 | 無 | Spring Cloud Hystrix |
服務網關 | 無 | Spring Cloud zuul |
分佈式配置 | 無 | Spring Cloud config |
服務跟蹤 | 無 | Spring Cloud Sleuth |
消息總線 | 無 | Spring Cloud Bus |
數據流 | 無 | Spring Cloud Stream |
批量任務 | 無 | Spring Cloud Task |
3.SpringCloud參考資料。
調試a.官網:http://projects.spring.io/spring-cloud/
調試b.中文版模塊文檔:https://springcloud.cc/spring-cloud-netfix.html
調試c.開發API說明:http://cloud.spring.io/spring-cloud-static/Dalston.SR1/
調試空格KGL中文版:https://springcloud.cc/spring-cloud-dalston.html
調試d.springCloud的中文社區:http://springcloud.cn/
調試TSKGLspringCloud中文網:https://springcloud.cc/
四、版本對比。
SpringBoot | springCloud |
---|---|
springboot 1.2.x | Angel |
springboot 1.3.x | Brixton |
springboot 1.4.x | Camden |
springboot 1.5.x | Dalston 和 Edgware |
springboot 2.0.x | Finchley |
springboot 2.1.x | Greenwich |