1、內(nèi)容概述
學(xué)習(xí)前提:
- JavaSE
- 數(shù)據(jù)庫(kù)
- 前端
- Servlet
- Http
- Spring+SpringMVC+Mybatis
- SpringBoot
- Dubbo+Zookeeper+分布式基礎(chǔ)
- Maven+Git
- Ajax+Json
- ...
這個(gè)階段怎么學(xué)習(xí)
微服務(wù)四個(gè)問題:
1、服務(wù)很多,客戶端怎訪問?
?2、這么多服務(wù),服務(wù)之間怎么通信?
?3、這么多服務(wù),怎么治理?
?4、服務(wù)掛了怎么辦?
解決方案選型:
?1、Spring Cloud NetFlix(已經(jīng)停止維護(hù)):一站式解決方案!可解決上述4個(gè)核心問題
? API網(wǎng)關(guān):Zuul組件
?通信:Feign --- HttpClient --- Http通信方式,同步,阻塞
?服務(wù)注冊(cè)與發(fā)現(xiàn):Eureka
?熔斷機(jī)制:Hystrix
?...
?2、Apache Dubbo Zookeeper:半自動(dòng)!需要整合別人的
?API網(wǎng)關(guān):沒有,找到第三方組件(比如整合Zuul組件),或者自己實(shí)現(xiàn)
?通信:Dubbo 是一個(gè)基于Java的高性能的RPC通信框架(性能比Feign強(qiáng)大)
?服務(wù)注冊(cè)與發(fā)現(xiàn):Zookeeper
?熔斷機(jī)制:沒有,需要借助Hystrix
?...
?3、Spring Cloud Alibaba:目前最新一站式解決方法!可解決上述4個(gè)核心問題,更簡(jiǎn)單
?API網(wǎng)關(guān):Zuul組件
?通信:Dubbo 是一個(gè)基于Java的高性能的RPC通信框架(性能比Feign強(qiáng)大)
?服務(wù)注冊(cè)與發(fā)現(xiàn):Nacos
?熔斷機(jī)制:Sentinel
?...
萬變不離其宗4個(gè)問題:
?1、API網(wǎng)關(guān)
?2、HTTP,RPC通信
?3、注冊(cè)和發(fā)現(xiàn)
?4、熔斷機(jī)制
2、Spring Cloud 五大組件
- 服務(wù)注冊(cè)與發(fā)現(xiàn)——Netflix Eureka
- 負(fù)載均衡:
- 客戶端負(fù)載均衡——Netflix Ribbon
- 服務(wù)端負(fù)載均衡:——Feign(其也是依賴于Ribbon,只是將調(diào)用方式RestTemplete 更改成Service 接口)
- 斷路器——Netflix Hystrix
- 服務(wù)網(wǎng)關(guān)——Netflix Zuul
- 分布式配置——Spring Cloud Config
3、常見面試題
- 什么是微服務(wù)?
- 微服務(wù)之間是如何獨(dú)立通訊的?
- SpringCloud 和 Dubbo有那些區(qū)別?
- SpringBoot 和 SpringCloud,請(qǐng)談?wù)勀銓?duì)他們的理解
- 什么是服務(wù)熔斷?什么是服務(wù)降級(jí)?
- 微服務(wù)的優(yōu)缺點(diǎn)分別是什么?說下你在項(xiàng)目開發(fā)中遇到的坑
- 你所知道的微服務(wù)技術(shù)棧有哪些?列舉一二
- Eureka和Zookeeper都可以提供服務(wù)注冊(cè)與發(fā)現(xiàn)的功能,請(qǐng)說說兩者的區(qū)別
|