微服務問題彙總

什麼是springboot?
自動化配置,內嵌Tomcat ,可執行的jar包

dubbo與spring cloud的區別?
dubbo是RPC框架,springcloud是微服務一站式解決方案.

爲什麼要用springcloud?

獨立的程序拆分成多個服務,原來一個進程分成多個進程,便於開發部署和維護,每個服務可以有自己的數據庫,可以用不同的語言開發,服務之間通過http調用的方式進行調用

why 微服務?

不至於牽一髮動全身,開發部署容易,便於維護和迭代開發

why cloud?

技術穩定,社區活躍,學習成本低,一般的問題都有成熟的解決方案

what is cloud?

一站式微服務解決方案,註冊發現,網關,熔斷,負載均衡,消息總線,鏈路跟蹤等.

cloud vs dubbo?
cloud 微服務解決方案,dubbo 分佈式協調服務 RPC框架.

微服務的基礎?
springboot ,自動配置,快速開發

微服務架構基礎?
遠程過程調用:http RESTful風格調用

服務多了怎麼辦?
Eureka服務治理:服務的註冊和發現

what is Eureka?
分佈式服務註冊中心,CS架構,基於AP設計,可以自我保護,客戶端緩存服務列表

Eureka vs Zookeeper?
Eureka 基於Ap設計,好死不如賴活着,服務請求會返回不實信息也不會不返回信息,客戶端可以緩存服務,
zookeeper 基於cp設計,訪問量小的時候可以使用,如果服務因爲網絡原因沒有響應會被剔除,客戶端得不到服務響應,需要leader選舉,leader選舉可能會失敗(大規模宕機)

服務如何調用?
Ribbon, RestTemplate調用,可以負載均衡,客戶端維護服務列表通過心跳檢測來更新

更簡單的調用?
Feign: 聲明式調用,通過註解標明服務名稱和服務接口即可,內部使用Ribbon可以負載均衡

Ribbon和Feign的區別?
Feign調用更加簡單

外部請求如何處理?
Zuul:通過網關進行路由,過濾和權限驗證等,本質上就是個web servlet ,其中使用filter來實現,有四種 pre router post error 分別在不同場景下觸發以進行不同的處理.filter間通過 context進行通信

如果請求量特別大其中一個服務停用怎麼辦?
Hystrix: 分佈式中一次請求可能需要多個服務共同協作,但是如果一個宕機或請求超時可能會導致線程資源耗盡,導致雪崩的出現.通過線程隔離,斷路器,降級等方式來保證系統可用性.降級:爲了利益最大化暫時停掉可用的服務;熔斷:服務不可用了,爲了防止雪崩,暫時停止這個服務.

如果服務不部署到一個Tomcat資源是否不會耗盡?這時需要熔斷嗎?

微服務中服務那麼多,配置起來很不方便?
Config:集中化外部配置中心,CS架構. 要素:遠程git倉庫,本地倉庫,服務A 服務B;原理:啓動應用根據配置從配置中心獲取配置,配置中心根據維護的git倉庫信息和client傳來的定位信息去找配置信息,克隆島server本地,創建ApplicationContext實例加載配置傳給客戶端,客戶端獲取後加載即可.

一個服務有多份的時候配置很不方便,需要每個都傳輸給服務?
Bus:輕量級消息系統,配置中心只要把消息給Bus其他服務即可自動讀取,有rabbitmq和kafka兩種方式

有錯怎麼辦?
Sleuth:全鏈路跟蹤,可以日誌分析,抽樣收集,traceid spanid來實現. ZipKin 日誌要比ELK好一些.ELK缺少對時間延遲的關注,性能分析問題需要使用ZIPkin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章