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

如何提升微服務的幸福感

開發 架構
隨著軟件設計的發展,設計思想不斷革新,作為程序員,就需要不斷的學習,不斷的嘗試新方法,本文將介紹一種新的數據庫設計方法,個人感覺非常符合現代設計風格,接下來一起看看吧。

[[327280]]

前言

隨著微服務的流行,越來越多公司使用了微服務框架,微服務以其高內聚、低耦合等特性,提供了更好的容錯性,也更適應業務的快速迭代,為開發人員帶來了很多的便利性。但是隨著業務的發展,微服務拆分越來越復雜,微服務的治理也成了一個比較令人頭疼的問題,我相信下面這些場景大家或多或少都遇到過。

場景一:發布是天大的事情,每一次的發布,都會出現執行到一半的請求中斷掉,上游繼續調用已經下線的節點導致報錯的現象。發布時收到各種報錯,同時還影響用戶的體驗,發布后又需要修復執行到一半的臟數據。

上述場景還是在新版本沒有任何問題的情況下,如果新版本有問題,則會導致大量業務直接請求到有問題的新版本,輕則修復數據,重則嚴重影響用戶體驗,甚至產生資損。最后不得不每次發版都安排在凌晨兩三點發布,心驚膽顫,睡眠不足,苦不可言。

場景二:大半夜某個服務節點出現異常,上游仍舊不斷地調用,出現很多異常和各種報警短信。被報警吵醒后,想直接在線上修復,有點難,想保留現場又害怕拖垮整個應用,只好先重啟為上。

但是這只是治標不治本的方式,因為很難復現從而無法有效定位,可能明天又被吵醒,繼續重啟。上述場景還是建立在報警系統比較完善的情況下,如果沒有完善的報警系統,嚴重情況可能整個業務系統都被單機異常拖垮。

場景三:公司業務壯大了,部門組織變復雜后,微服務模塊越來越多。我不清楚發布的服務到底被誰調用了,所以我不知道能否安全地下線一個服務。我這個應用的這個接口是個敏感接口,我只希望得到我授權的應用才能調用,而不是直接從服務注冊中心得到我的地址就能直接調用,但是目前好像還做不到。

以上三個場景確實是使用微服務之后帶來的痛點,這時候有個人告訴你,這些問題,我都知道怎么搞定,我有著豐富的經驗,知道怎么解決,你肯定很開心。

然后高薪請進來了,確實不錯,各種架構圖、框架原理,框架修改點都非常清晰而且功能確實完美。最后評估對當前系統的修改成本,需要搭建三套中間件服務端,增加 4 個中間件依賴,修改幾萬行代碼和配置。

“打擾了,還是業務重要,產品經理給的需求還沒完成呢,剛剛說的場景也沒那么痛苦,不就幾個小問題嘛,真的沒事。”

這時候 EDAS 告訴你,EDAS 的微服務解決方案,不需要做任何的代碼和配置的修改,就能完美地解決上面說的三個場景中的問題。

你,不心動嗎?

是的,你沒看錯,只要你的應用是基于 Spring Cloud 或 Dubbo 最近五年內的版本開發,就能直接使用完整的 EDAS 微服務治理能力,不需要修改任何代碼和配置。

為什么 EDAS 用戶可以輕松發布

傳統的發布流程真的很容易出錯

傳統的發布流程中,服務提供者停止再啟動,服務消費者感知到服務提供者節點停止的流程如下:

如何提升微服務的幸福感

1、服務發布前,消費者根據負載均衡規則調用服務提供者,業務正常。

2、服務提供者 B 需要發布新版本,先對其中的一個節點進行操作,首先是停止 Java 進程。

3、服務停止過程,又分為主動注銷和被動注銷,主動注銷是準實時的,被動注銷的時間由不同的注冊中心決定,最差的情況會需要 1 分鐘。

如果應用是正常停止,Spring Cloud 和 Dubbo 框架的 Shutdown Hook 能正常被執行,這一步的耗時可以忽略不計。

如果應用是非正常停止,比如直接使用 kill -9 停止,或者 Docker 鏡像構建的時候 Java 應用不是 1 號進程且沒有把 kill 信號傳遞給應用。那么服務提供者不會主動去注銷服務節點,而是在超過一段時間后由于心跳超時而被動地被注冊中心摘除。

4、服務注冊中心通知消費者,其中的一個服務提供者節點已下線。包含推送和輪詢兩種方式,推送可以認為是準實時的,輪詢的耗時由服務消費者輪詢間隔決定,最差的情況下需要 1 分鐘。

5、服務消費者刷新服務列表,感知到服務提供者已經下線了一個節點,這一步對于 Dubbo 框架來說不存在,但是 Spring Cloud 的負載均衡組件 Ribbon 默認的刷新時間是 30 秒 ,最差情況下需要耗時 30 秒。

6、服務消費者不再調用已經下線的節點。

從第 2 步到第 6 步的過程中,Eureka 在最差的情況下需要耗時 2 分鐘,Nacos 在最差的情況下需要耗時 50 秒。在這段時間內,請求都有可能出現問題,所以發布時會出現各種報錯,同時還影響用戶的體驗,發布后又需要修復執行到一半的臟數據。最后不得不每次發版都安排在凌晨兩三點發布,心驚膽顫,睡眠不足,苦不可言。

為什么 EDAS 用戶不需要修數據

當您的應用部署到 EDAS 之后,EDAS 的無損下線功能會自動在發布新版本的時候做如下的增強,我們主要關注綠色部分的信息:

如何提升微服務的幸福感

1、應用在發布前主動向注冊中心注銷應用,并將應用標記為已下線的狀態。

2、在接收到服務消費者請求時,首先會正常處理本次調用,并通知服務消費者此節點已下線,服務消費者會立即從調用列表刪除此節點。

3、在這之后,服務消費者不再調用已經下線的節點。

EDAS 的無損下線功能,將原來的從原來的 停止進程階段 注銷服務變成了 prestop 階段注銷服務,將原來的依賴于 注冊中心推送,做到了服務提供者直接通知消費者從調用列表中摘除自己。使得下線感知的時間大大減短,從原來的分鐘級別做到準實時,確保您的應用在下線時能做到業務無損。

金絲雀發布為 EDAS 用戶再加一重保障

在普通的新版本發布場景中,默認情況下請求到各個節點的流量是均勻分布的。

假設服務提供者有 4 臺,只要某個節點一發布新版本,就會有 25% 的流量打到新版本。如果新版本存在問題,就會影響線上 25% 的流量,輕則修復數據,重則嚴重影響用戶體驗,甚至產生資損。

如何提升微服務的幸福感

EDAS 提供的金絲雀發布功能,支持 EDAS 用戶在發布新版本之前就提前配置好金絲雀規則,使得只有符合流量特征的流量會調用到新版本,從而可以精準地控制調用到新版本的流量,進行新版本驗證。

如何提升微服務的幸福感

如圖所示,EDAS 的用戶可以在發布之前配置好金絲雀規則。

這里以 Dubbo 為例,下圖中配置表明 調用

com.alibaba.edas.demo.EchoService.echo(String string) 的流量中,只有參數為 "helloworld" 的流量才會被路由到新版本。

如何提升微服務的幸福感

在服務提供者的將服務注冊到注冊中心前,EDAS 已經將新版本對應的金絲雀規則推送到服務消費者端。服務消費者在調用的時候,會根據金絲雀規則對流量進行分析,并與服務提供者列表中的元數據進行比對,選擇正確的調用地址。

除了上圖中演示的簡單參數比對之外,EDAS 也支持解析更復雜的結構體進行規則配置。當然,如果某個場景只需要控制流量百分比就能滿足需求,EDAS 用戶也可以直接按比例進行灰度。

EDAS 金絲雀發布 將路由到新版本的流量,從所占總節點數的百分比轉變成了根據流量特征進行控制。您可以自由地控制路由到新版本的流量,比如只將內部測試賬號的流量路由到新版本,從而做到小心發布、大膽驗證。所以,趕緊來 EDAS 進行輕松發布吧。

為什么 EDAS 用戶不需要半夜醒來重啟機器

開源框架有可能被單點異常拖垮整個應用系統

在微服務架構中,當服務提供者的應用實例出現異常時,服務消費者無法及時感知,會影響服務的正常調用,進而影響消費者的服務性能甚至可用性。

如何提升微服務的幸福感

在上圖的示例場景中,系統包含 4 個應用,A、B、C 和 D,其中應用 A 會分別調用應用 B、C 和 D。當應用 B、C 或 D 的某些實例異常時(如圖中應用 B、C 和 D 標識的各有 1個和 2 個異常實例),如果應用 A 無法感知,會導致部分調用失敗;如果業務代碼寫的不夠優雅,有可能影響應用 A 的性能甚至整個系統的可用性。

離群實例摘除給業務系統的穩定性加把鎖

為了保護應用的服務性能和可用性,EDAS 支持檢測應用實例的可用性并進行動態調整,以保證服務成功調用,從而提升業務的穩定性和服務質量。

如下圖所示,EDAS 用戶可以在控制臺上對應用 A 進行如下配置,從而保證 A 應用的穩定性。

如何提升微服務的幸福感

1、異常類型,網絡異常指的是 IOException,業務異常在 Spring Cloud 框架中指的是返回值 http 狀態碼 為 500 ,Dubbo 框架中指的是返回值中包含 Exception。

2、QPS 下限,為了避免調用次數太少,隨機性較大從而影響判斷的準確性,您可以設置 QPS 的下限,只有 QPS 達到一定值后才進行離群摘除判斷。默認為 1 ,可以配置成 0。

3、錯誤率下限,如果某臺服務提供者返回值中,錯誤的比例超過了配置的這個值,會被判定成需要被摘除。

4、摘除實例比例上限,為了避免摘除過多的機器節點,導致剩余的節點數流量過載,需要配置一個摘除比例的上限,建議不超過 50%。

5、恢復檢測單位時間,離群節點被摘除的動作是暫時性的,經過單位時間后,消費者側會對此節點進行檢測。如果節點已經恢復,會將其放回到節點中。如果節點持續被摘除,那么它被摘除的時間會線性增加到最大值。

基于離群實例摘除功能,EDAS 用戶不會因為單機異常在半夜醒來重啟機器,先安心地睡一覺吧,反正業務也不會受影響。醒來之后機器現場也還在,是拿著保留的現場進行分析,還是直接重啟,任君選擇。

為什么 EDAS 用戶對自己的服務胸有成竹

服務查詢一目了然

我們熟知的 zookeeper 組件并沒有服務查詢界面,Eureka 和 Nacos 這兩個注冊中心,雖然提供了網頁版的控制臺,但是在控制臺上只能查詢到服務的 IP 和 port 等基本的信息。

EDAS 用戶在使用服務查詢時,不僅能夠查詢到應用注冊了哪些服務,對應的 IP 和 port 是什么,還能查詢到服務包含的具體方法和參數類型,以及直觀地看到服務被其他應用和節點的訂閱情況。

如何提升微服務的幸福感

即使部門組織再復雜、微服務模塊再多,EDAS 的用戶也可以清晰地查詢出服務的被調用情況,做到心中有數,在梳理服務依賴以及評估影響面的時候可以做到胸有成竹。

精準地控制服務調用的權限

業務發展后,服務還會遇到權限控制的需求。比如優惠券部門的某個應用,同時包含了優惠券查詢接口 和優惠券發放接口。對于優惠券查詢接口來說,默認公司內部的所有應用都有權限調用的;但優惠券發放接口只有客服和運營部門的某些應用才有權限調用。

如下圖所示,EDAS 用戶可以對自己的服務進行權限管理,這里以 Dubbo 為例,下圖中配置表明,應用 cartservice 發布的 com.alibaba.edas.demo.EchoService 服務的 addItemToCart 的方法,只允許 frontend 這個應用調用。

如何提升微服務的幸福感

除了支持對指定的接口添加鑒權規則之外,服務鑒權也支持對整個應用添加鑒權規則,還支持根據調用方 IP 進行鑒權。

精準的權限管理,可以讓你更好地管理微服務調用的權限,保證業務的合規性,保障數據的安全。

EDAS 微服務治理使用成本真的很低

使用 EDAS 微服務治理的成本真的已經低得不能再低,不需要修改任何代碼和配置,直接將應用部署上來就可以享受完整的 EDAS 微服務治理能力。

只要你的應用是基于 Spring Cloud 或 Dubbo 最近五年內的版本開發,就能直接使用完整的 EDAS 微服務治理能力,趕快來體驗吧!

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2021-01-20 10:25:20

編程TypeScript技巧

2012-07-12 13:20:35

職場生活程序員

2022-12-12 08:29:59

Vite構建工具

2025-01-06 08:57:19

Vue技巧

2011-04-06 12:22:28

2017-12-19 11:54:51

微信朋友圈同步

2018-03-21 08:39:14

2025-06-19 09:02:49

2017-03-29 13:12:56

Windows工具資訊

2017-11-30 19:23:24

2019-04-12 08:19:15

快手AI算法

2022-12-07 14:40:39

能源

2012-01-11 14:58:08

2019-02-26 14:23:06

跳槽薪資職業

2019-01-15 11:40:14

開發技能代碼

2016-06-15 16:21:35

互聯網+

2020-05-15 14:17:40

大數據AR數字

2020-07-29 08:30:48

微服務架構數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区在线视频 | 性色网站| 精品一区二区三区在线视频 | 国产高清在线精品一区二区三区 | 成人av鲁丝片一区二区小说 | 亚洲高清视频在线观看 | 久久精品国产久精国产 | 亚洲天堂影院 | 激情欧美日韩一区二区 | 精品一区二区久久久久久久网站 | 美女视频黄的 | 久久久久久久久久一区 | 超碰人人人人 | 精品久久视频 | 黄色网址在线免费观看 | 欧美国产在线一区 | a视频在线观看 | 免费在线观看黄色av | 久久大全 | 国产视频二区 | 亚洲精品一区国语对白 | 国产一区二区在线免费 | 免费黄色录像片 | 亚洲性人人天天夜夜摸 | 成人在线视频一区 | 91视频在线 | 日韩成人在线播放 | av毛片免费 | 欧美激情区 | 午夜性视频 | av网站在线播放 | 黄色网络在线观看 | 亚洲一区二区在线播放 | 久久高清免费视频 | 国产欧美日韩精品一区 | 亚洲国产一区二区三区在线观看 | 日韩一区二区三区四区五区六区 | 久久999 | 欧美色综合一区二区三区 | 日本成人免费网站 | av色在线 |