成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

開發 前端
Spring cloud的很多東西都比較精確,比如斷路器觸發時間、事物補償時間、http響應時間等,這些都需要好好的設計,而且可以優化的點非常多。

[[279186]]

 本文基于SpringBoot 1.5.7和SpirngCloud Dalston.SR5。

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

針對這個架構圖我分層介紹一下:

1、是web服務器的選型,這個我選擇的是nginx+keepalived,haproxy也是一個選擇,但是haproxy在反向代理處理跨域訪問的時候問題很多。所以我們nginx有些地方做了keep-alive模式處理,減少了三次握手的次數,提高了連接效率。keepalived做nginx的負載,虛擬一個vip對外,兩個nginx做高可用,nginx本身反向代理zuul集群。

2、api gateway,這里的zuul很多人詬病,說是速度慢推薦直接用nginx,這里我還是推薦使用zuul的,畢竟zuul含有攔截器和反向代理,在權限管理、單點登錄、用戶認證時候還是很有用的,而且zuul自帶ribbon負載均衡,如果你直接用nginx,還需要單獨做一個feign或者ribbon層,用來做業務集群的負載層,畢竟直接把接口暴露給web服務器太危險了。這里zuul帶有ribbon負載均衡和hystrix斷路器,直接反向代理serviceId就可以代理整個集群了。

3、業務集群,這一層我有些項目是分兩層的,就是上面加了一個負載層,下面是從service開始的,底層只是單純的接口,controller是單獨一層由feign實現,然后內部不同業務服務接口互調,直接調用controller層,只能說效果一般,多了一次tcp連接。所以我推薦合并起來,因為做過spring cloud項目的都知道,feign是含有ribbon的,而zuul也含有ribbon,這樣的話zuul調用服務集群,和服務集群間接口的互調都是高可用的,保證了通訊的穩定性。Hystrix還是要有的,沒有斷路器很難實現服務降級,會出現大量請求發送到不可用的節點。當然service是可以改造的,如果改造成rpc方式,那服務之間互調又是另外一種情況了,那就要做成負載池和接口服務池的形式了,負載池調用接口池,接口池互相rpc調用,feign client只是通過實現接口達到了仿rpc的形式,不過速度表現還是不錯的。

4、redis緩存池,這個用來做session共享,分布式系統session共享是一個大問題。同時呢,redis做二級緩存對降低整個服務的響應時間,并且減少數據庫的訪問次數是很有幫助的。當然redis cluster還是redis sentinel自己選擇。

5、eurake注冊中心這個高可用集群,這里有很多細節,比如多久刷新列表一次,多久監測心跳什么的,都很重要。

6、spring admin,這個是很推薦的,這個功能很強大,可以集成turbine斷路器監控器,而且可以定義所有類的log等級,不用單獨去配置,還可以查看本地log日志文件,監控不同服務的機器參數及性能,非常強大。它加上elk動態日志收集系統,對于項目運維非常方便。

7、zipkin,這個有兩種方式,直接用它自己的功能界面查看方式,或者用stream流的方式,由elk動態日志系統收集。但是我必須要說,這個對系統的性能損害非常大,因為鏈路追蹤的時候會造成響應等待,而且等待時間非常長接近1秒,這在生產環境是不能忍受的,所以生產環境最好關掉,有問題調試的時候再打開。

8、消息隊列,這個必須的,分布式系統不可能所有場景都滿足強一致性,這里只能由消息隊列來作為緩沖,這里我用的是Kafka。

9、分布式事物,我認為這是分布式最困難的,因為不同的業務集群都對應自己的數據庫,互相數據庫不是互通的,互相服務調用只能是相互接口,有些甚至是異地的,這樣造成的結果就是網絡延遲造成的請求等待,網絡抖動造成的數據丟失,這些都是很可怕的問題,所以必須要處理分布式事物。我推薦的是利用消息隊列,采取二階段提交協議配合事物補償機制,具體的實現需要結合業務,這里篇幅有限就不展開說了。

10、config配置中心,這是很有必要的,因為服務太多配置文件太多,沒有這個很難運維。這個一般利用消息隊列建立一個spring cloud bus,由git存儲配置文件,利用bus總線動態更新配置文件信息。

11、實時分布式日志系統,logstash收集本地的log文件流,傳輸給elasticsearch,logstash有兩種方式,1、是每一臺機器啟動一個logstash服務,讀取本地的日志文件,生成流傳給elasticsearch。2、logback引入logstash包,然后直接生產json流傳給一個中心的logstash服務器,它再傳給elasticsearch。elasticsearch再將流傳給kibana,動態查看日志,甚至zipkin的流也可以直接傳給elasticsearch。這個配合spring admin,一個查看動態日志,一個查看本地日志,同時還能遠程管理不同類的日志級別,對集成和運維非常有利。

最后要說說,spring cloud的很多東西都比較精確,比如斷路器觸發時間、事物補償時間、http響應時間等,這些都需要好好的設計,而且可以優化的點非常多。比如:http通訊可以使用okhttp,jvm優化,nio模式,數據連接池等等,都可以很大的提高性能。

還有一個docker問題,很多人說不用docker就不算微服務。其實我個人意見,spring cloud本身就是微服務的,只需要jdk環境即可。編寫dockerfile也無非是集成jdk、添加jar包、執行jar而已,或者用docker compose,將多個不同服務的image組合run成容器而已。但是帶來的問題很多,比如通訊問題、服務器性能損耗問題、容器進程崩潰問題,當然如果你有一套成熟的基于k8s的容器管理平臺,這個是沒問題的,如果沒有可能就要斟酌了。而spring cloud本身就是微服務分布式的架構,所以個人還是推薦直接機器部署的,當然好的DevOps工具將會方便很多。

作者github地址:https://github.com/cyc3552637

引言

面試中面試官喜歡問組件的實現原理,尤其是常用技術,我們平時使用了SpringCloud還需要了解它的實現原理,這樣不僅起到舉一反三的作用,還能幫助輕松應對各種問題及有針對的進行擴展。

以下是《Java深入微服務原理改造房產銷售平臺》課程講到的部分原理附圖,現在免費開放給大家,讓大家輕松應對原理面試題。

服務注冊發現組件Eureka工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

服務網關組件Zuul工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

跨域時序圖

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

Eureka與Ribbon整合工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

解決分布式一致性

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

級聯故障流程

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

斷路器組件Hystrix工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

分布式追蹤Sleuth工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

SpringBoot自動配置工作原理

 

8張圖帶你認識SpringCloud框架(附spring源碼,建議收藏)

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-02-02 15:58:02

Python爬蟲腳本

2022-07-26 09:22:04

Python項目

2021-05-18 06:55:07

Java AQS源碼

2021-03-08 09:52:55

架構運維技術

2020-06-28 07:39:44

Kafka分布式消息

2018-03-09 14:59:02

F5應用交付

2022-03-18 13:58:00

RocketMQ消息隊列

2022-02-28 11:10:42

ZGCG1收集器

2021-11-29 07:47:56

RocketMQ分布式消息

2020-11-16 10:50:27

KubernetesIngressLinux

2020-09-23 11:23:25

推薦系統廣告

2020-11-27 06:28:55

Spring循環依賴

2015-07-13 10:23:23

Java圖解

2021-05-07 17:11:19

負載均衡運維服務

2022-12-21 19:06:55

機器學習人工智能

2010-09-29 15:15:15

DHCP中繼

2020-09-12 16:45:49

Git

2024-08-26 08:44:54

2023-04-11 08:35:22

RocketMQ云原生

2022-06-13 11:05:35

RocketMQ消費者線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产真实乱全部视频 | 成人av网页| 欧美日韩在线一区二区三区 | 色综合色综合网色综合 | 欧美性a视频 | 一级片子 | 欧美一级在线观看 | 在线伊人 | 91精品国产色综合久久不卡蜜臀 | av一级久久| 成人毛片一区二区三区 | 久久里面有精品 | 中文字幕观看 | 亚洲欧美网站 | 国产精品日韩欧美一区二区三区 | 久久久久久亚洲精品不卡 | 在线看av网址 | 男人天堂社区 | 日韩美香港a一级毛片免费 国产综合av | 欧美中文一区 | 日韩精品视频在线免费观看 | 五月激情综合网 | 久久久久久久久99 | 一区二区中文字幕 | 免费在线一区二区 | 9久久精品 | 色网站入口 | 国产黑丝在线 | 国产一级一级毛片 | 亚洲丝袜天堂 | 免费人成激情视频在线观看冫 | 韩国精品一区 | 91精品国产乱码久久久久久久久 | 欧美亚洲激情 | 中文字幕亚洲欧美日韩在线不卡 | 97成人免费 | 91精品在线播放 | 综合精品| 欧美区日韩区 | 久久精品综合 | 免费视频成人国产精品网站 |