需要做:
微服務(wù)設(shè)計:java(spring boot) + RPC(RESTFUL) + 數(shù)據(jù)庫(db) + 緩存(redis) + 配置中心(apollo)
微服務(wù)項目實現(xiàn)
kubernetes部署
K8seasy:https://github.com/xiaojiaqi/K8seasy_release_page
微服務(wù)的部署
高可用和監(jiān)控
高可用:
多實例
注冊中心:eureka,zookeeper, console, Nacos(注:在kubernetes 中部署微服務(wù)蚕脏,對注冊中心是沒有任何限制的)
監(jiān)控(Metrics):Prometheus + Grafana(內(nèi)存大小芙盘,200錯誤數(shù)目,500錯誤數(shù)目, JVM里線程數(shù)量液兽,GC時間大新钌尽)
日志(Logging):直接寫到kafka組件直接進入日志中心(日志不再落地,日志IO被消除了抵碟,日志的存儲也和容器做到了分離)
追蹤(Tracing):APM(cat, pip, zipkin, skywalkin)桃漾,Zipkin 需要在項目中加入一個庫,并不需要寫代碼拟逮,這對業(yè)務(wù)的入侵做到了很少撬统,非常方便
流量控制:熔斷、限流和降級敦迄,sentinel
服務(wù)化網(wǎng)格和數(shù)據(jù)持久化
有狀態(tài)服務(wù)
operator
考慮:
系統(tǒng)的可用性恋追,可靠性凭迹、強壯性、可擴展
微服務(wù)參考架構(gòu)
技術(shù)介紹
高可觀測性原則
阿波羅配置中心
以 Kubernetes 為關(guān)鍵環(huán)節(jié)的微服務(wù) DevOps 平臺
構(gòu)建和鏡像推送:Jenkins Pipeline 或者 gitlab-runner Pipeline 來完成
工作負載訪問流程圖
監(jiān)控組件
資源層監(jiān)控:Prometheus + Grafana + Node Exporter 等組件苦囱,監(jiān)控Kubernetes 節(jié)點的 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)