原文: 微服務專題—開篇
thumbnail: /thumbnails/zixingche.jpg
date: 2019-04-10 19:36:57
[TOC]
前言
2016年在公司有幸接觸到微服務, 并參與了公司基于微服務架構的產品開發, 但是...
- 開發內容偏業務, 那時我甚至還沒有搞清楚分布式, 集群, 微服務...幾者之間的聯系和區別
- 對微服務的認識僅限于Spring Cloud技術棧中某幾個組件的簡單使用和配置...
正如那句標語Coordinate Anything
, Spring Cloud為什么簡化了分布式開發, 那時完全說不清楚
后來幾年里, 有時會關注Spring Boot, Spring Cloud的版本迭代, 嘗試去做一些Demo例如xx整合xx
遺憾的是, 依舊記錄的是一堆代碼, 配置... 未把一些感受和思考及時記錄下來
所以在清理電腦時, 把相關的學習代碼全部刪掉了.
只留下github上一個兩年前提交的學習項目, 雖然版本很老舊, 但是組件整合比較完整
記不太清, 當時好像是學習 周立 的Spring Cloud教程, 感謝他們的分享!
所以準備開一個專題, 來記錄自己目前階段對于微服務架構的思考與各開源組件的選型與實踐
目的
微服務是一種架構風格, 所以專題內容不局限于代碼實踐, 不局限于Spring Cloud技術棧!
主要目的:
- 對微服務架構體系有較為全面的認識
- 對微服務技術棧中各組件的架構原理進行深入理解
- 理解和實踐微服務技術棧中各組件的業務與運維場景
- 能夠從源碼中獲得一些細節和深層次機制
目錄(持續更新)
開篇臨時列出能想到的目錄, 在補充階段目錄標題修改為文章鏈接
服務注冊與發現
分布式系統中服務注冊與服務發現的主流技術方案
[源碼分析——服務發現組件Netflix Eureka](https://xiefayang.com/2019/04/16/源碼分析—服務發現組件Netflix Eureka/)
[源碼分析——客戶端負載Netflix Ribbon](https://xiefayang.com/2019/04/23/源碼分析——軟負載實現Netflix Ribbon/)
實踐: Consul+Docker服務注冊與發現
服務間的通訊
- 通訊模型
- 服務間的 IPC 機制及各方案對比: HTTP, RPC
- 實踐: 服務間通訊gRPC
服務網關
服務網關的要素, 功能, 架構原理
業界流行的服務網關方案, 實踐
核心功能重點源碼閱讀: Netflix Zuul, Zuul 2.0, Spring Cloud Gateway
配置中心
核心概念與架構原理
基礎應用場景與高級特性
理解與實踐: 攜程Apollo
服務跟蹤
分布式追蹤系統架構
OpenTracing理論基礎及其數據模型
Spring Cloud Sleuth, zipkin
CAT的理解與實踐
實踐: 分布式鏈路追蹤與展示: Sleuth + Zipkin + Kafka + Elasticsearch + Kibana
服務容錯
場景實踐: 服務調用熔斷, 服務降級, 容錯限流
理論基礎: 斷路器模式
Netflix Hystrix原理
實踐: Hystrix Dashboard
服務監控解決方案
- 實踐: Prometheus + Grafana
微服務安全
- TODO
微服務持續集成與部署實踐
- TODO: 另開專題