需要做:
微服務(wù)設(shè)計(jì):java(spring boot) + RPC(RESTFUL) + 數(shù)據(jù)庫(kù)(db) + 緩存(redis) + 配置中心(apollo)
微服務(wù)項(xiàng)目實(shí)現(xiàn)
kubernetes部署
K8seasy:https://github.com/xiaojiaqi/K8seasy_release_page
微服務(wù)的部署
高可用和監(jiān)控
高可用:
多實(shí)例
注冊(cè)中心:eureka,zookeeper, console, Nacos(注:在kubernetes 中部署微服務(wù),對(duì)注冊(cè)中心是沒(méi)有任何限制的)
監(jiān)控(Metrics):Prometheus + Grafana(內(nèi)存大小,200錯(cuò)誤數(shù)目,500錯(cuò)誤數(shù)目, JVM里線程數(shù)量,GC時(shí)間大小)
日志(Logging):直接寫到kafka組件直接進(jìn)入日志中心(日志不再落地,日志IO被消除了,日志的存儲(chǔ)也和容器做到了分離)
追蹤(Tracing):APM(cat, pip, zipkin, skywalkin),Zipkin 需要在項(xiàng)目中加入一個(gè)庫(kù),并不需要寫代碼,這對(duì)業(yè)務(wù)的入侵做到了很少,非常方便
流量控制:熔斷、限流和降級(jí),sentinel
服務(wù)化網(wǎng)格和數(shù)據(jù)持久化
有狀態(tài)服務(wù)
operator
考慮:
系統(tǒng)的可用性,可靠性、強(qiáng)壯性、可擴(kuò)展
微服務(wù)參考架構(gòu)
image.png
技術(shù)介紹
image.png
高可觀測(cè)性原則
image.png
阿波羅配置中心
image.png
以 Kubernetes 為關(guān)鍵環(huán)節(jié)的微服務(wù) DevOps 平臺(tái)
image.png
構(gòu)建和鏡像推送:Jenkins Pipeline 或者 gitlab-runner Pipeline 來(lái)完成
image.png
工作負(fù)載訪問(wèn)流程圖
image.png
監(jiān)控組件
資源層監(jiān)控:Prometheus + Grafana + Node Exporter 等組件,監(jiān)控Kubernetes 節(jié)點(diǎn)的 CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤等使用情況
中間件層監(jiān)控:Prometheus + Grafana + MySQL Exporter + Nginx Exporter + JVM Exporter 等,監(jiān)控 MySQL、Nginx、JVM 等中間件的使用情況
鏈路/APM監(jiān)控:Pinpoint / Skywalking 等監(jiān)控工具,監(jiān)控應(yīng)用程序的性能表現(xiàn)