哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一個高可用的接口是該考慮哪些內容

OSC開源社區(qū) ? 來源:京東云開發(fā)者 ? 2023-01-17 11:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

作為一個后端研發(fā)人員,開發(fā)服務接口是我正常不過的工作了,這些接口不管是面向前端 HTTP 或者是供其他服務 RPC 遠程調用的,都繞不開一個共同的話題就是 “高可用”,接口開發(fā)往往看似簡單,但保證高可用這塊實現(xiàn)起來卻不并沒有想想的那么容易,接下來我們就看一下,一個高可用的接口是該考慮哪些內容,同時文中有不足的歡迎批評指正。

到底啥是高可用

用一句簡單的話來概就是我們的系統(tǒng)具不具備應對和規(guī)避風險的能力。

為啥做高可用

1. 程序都是有人開發(fā)的,在開發(fā)過程中會犯錯從而導致線上事故的發(fā)生 2. 系統(tǒng)運行依賴各種運行環(huán)境:CPU、內存、硬盤、網(wǎng)絡等等,而這些都有可能損壞 3. 業(yè)務拉新用戶正在注冊賬號,結果注冊接口掛了用戶體驗受影響 4. 雙十一、618等大促大量用戶下單,結果下單服務接口掛了GMV受影響等等 5. 其他未知因素等等 總之為了應對這些不可控因素的發(fā)生,我們必須要做高可用

高可用的關鍵點

我們說過高可用的本質是系統(tǒng)是否具備應對和規(guī)避風險的能力,那么從這個角度出發(fā)來設計高可用接口的有以下幾個關鍵因素:Dependence(依賴)、Probability(概率)、Time(時長)、Scope(范圍) 1. 依賴的資源相對少 2. 風險的概率足夠低 3. 影響的范圍足夠小 4. 影響時長足夠短

接口高可用設計的幾個原則

結合這些關鍵點,我們來看一下具體具體注意事項

1、控制依賴

能少依賴就少依賴,能不強依賴就不強依賴

少依賴 例如:日常每分鐘10個請求,查詢Mysql數(shù)據(jù)即可滿足,此時盲目引入Redis中間件,不僅浪費資源而且增加系統(tǒng)復雜性 弱依賴 例如:用戶注冊服務強依賴新用戶優(yōu)惠券發(fā)放服務,當優(yōu)惠券發(fā)放服務故障后,整個注冊不可用,好的方式是采用弱依賴,使用異步化的 方式,這樣優(yōu)惠券發(fā)送服務不可用時,不會影響注冊鏈路。

2、避免單點

避免單點故障的核心是通過備份或者冗余快速的進行容錯

1. 我們采用多機房多實力部署我們應用來保障故障風險分攤,一旦有一臺服務器出現(xiàn)問題,其他服務仍然能夠繼續(xù)支撐我們的服務 2. 每次上線我們都會保留上一次上線發(fā)布版本,這樣一旦上線的程序出現(xiàn)問題我們能夠快速回滾到上一版本 3. 每個接口至少保障2人知道相關業(yè)務,一旦線上服務出現(xiàn)問題,其中任何一人一個能夠快速處理相關線上問題 4. 不管是Mysql還是Redis等中間件都支持數(shù)據(jù)主備機群部署 類似的例子很多這里就不再一一列舉了

3、負載均衡

將風險進行分攤避免分險擴散

例如:無論是Ngnix或者JSF的,其負載均衡目的就是盡量的將流量分散到不同的服務器節(jié)點上,這樣可以有效的保障單節(jié)點因系統(tǒng)瓶頸 問題而引發(fā)一系列的風險。 像上面這個例子我想每個研發(fā)人員都知道也都會這么做,但是是不是所有的場景我們都考慮到均衡這個問題? 例如:通常為了提高讀并發(fā)的能力,我們會把數(shù)據(jù)緩存到JIMDB中,但是因為緩存的key出現(xiàn)了熱點數(shù)據(jù)導致JIMDB單分片負載過高,恰 好,這個分片上也緩存了其他數(shù)據(jù),但是因為CPU負載過高,導致查詢性能變差,大量的超時,影響了業(yè)務。所以,我們在接口設計 的時候,假如遇到類似場景,也要充分考慮數(shù)據(jù)存儲的均衡性,同時針對熱點數(shù)據(jù)做好監(jiān)控,隨時支持動態(tài)均衡。

4、資源隔離

隔離的目的將風險控制在可控范圍內,避免風險擴散

例如:接口部署之間服務部署物理上是相互隔離的,避免單機房或者單服務器出現(xiàn)故障影響整個服務 例如:我們在存儲業(yè)務數(shù)據(jù)的時候會將數(shù)據(jù)分庫分表,數(shù)據(jù)通過不同分片存儲,這樣就不會導致某個服務器掛掉影響到整個服務

5、接口限流

限流是一種保護措施,目的是將風險控制在可控范圍內

我們在開發(fā)接口的時候,一定要結合業(yè)務流量情況進行限流措施,限流一方面處于對自身服務資源的保護,同時也是對依賴資源的一種 保護措施。 目前集團JSF在流量控制這塊已經(jīng)有了對應的限流處理能力,同時我們也可以結合實際業(yè)務進行限流模塊的開發(fā)。

6、服務熔斷

熔斷也是一種保護措施,目的是將風險控制在可控范圍內,避免風險擴散

例如:經(jīng)常我們服務A會同時調用B、C、D多個服務,當我們依賴的服務其中一個出現(xiàn)故障或者性能下降的時候,就是導致整體服務 可用率下降,所以我們在開發(fā)此類服務的時候,一定要注意接口之間的隔離。我們可以利用類似Hystrix組件實現(xiàn),也可以借助DUCC 進行手動隔離。 其實熔斷也是一種控制資源依賴的一種,將強依賴降級為弱依賴

7、異步處理

將同步操作轉為異步操作

例如:用戶頁面領取一些權益,針對領取這個服務在大促期間因為用戶流量較大,為了避免系統(tǒng)負載,此時采用MQ異步接收用戶領取 請求然后進行優(yōu)惠券發(fā)放,這樣不僅極大的減少了事故的影響范圍,也減少問題發(fā)生概率。

8、降級方案

服務降級屬于一種問題發(fā)生后的補救措施,通過服務降級可以減少一部分風險影響范圍

對于重要的服務接口我們都要具備完善的降級方案,這里需要說明的是,降級有損的,我們一定要在系統(tǒng)開發(fā)前就要考慮各種問題 發(fā)生的可能,降級的前提是通過降級非核心業(yè)務保證核心業(yè)務運行。 例如:大促峰值期間,一般會提前降級掉很多功能,同時限流,主要是為了保護峰值絕大部分人的交易支付體驗。

9、灰度發(fā)布

通過灰度發(fā)布降低風險影響范圍

例如:我們上線一個新服務,通過一定的灰度策略,讓用戶先行體驗新版本的應用,通過收集這部分用戶對新版本應用的反饋以及 對新版本功能、性能、穩(wěn)定性等指標進行評論,進而決定繼續(xù)放大新版本投放范圍直至全量升級或回滾至老版本。根據(jù)線上反饋結果, 做到查漏補缺,發(fā)現(xiàn)重大問題,可回滾“舊版本”

10、混沌工程

通過提前對系統(tǒng)進行一些破壞性的手段,提前發(fā)現(xiàn)潛在問題

例如:一個復雜接口系統(tǒng)依賴了太多的服務和組件,這些組件隨時隨地都可能會發(fā)生故障,而一旦它們發(fā)生故障,會不會如蝴蝶效應 一般造成整體服務不可用呢,我們并不知道,因此我們可以借助泰山平臺混沌工程進行演練,針對發(fā)生的場景制定各種預案,將風險 控制在可控范圍內。

編輯:何安

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    9587

    瀏覽量

    157582
  • 服務
    +關注

    關注

    0

    文章

    76

    瀏覽量

    18887
  • 后端
    +關注

    關注

    0

    文章

    34

    瀏覽量

    2547

原文標題:淺談服務接口的高可用設計

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RGMII接口案例:二設備共享PHY

    最近項目中,F(xiàn)PGA通過多個RGMII接口與其他設備通信,在通信的過程中,有RGMII接口對端設備始終無法驅動,最后通過共享
    的頭像 發(fā)表于 11-27 16:47 ?1w次閱讀
    RGMII<b class='flag-5'>接口</b>案例:二<b class='flag-5'>個</b>設備共享<b class='flag-5'>一</b><b class='flag-5'>個</b>PHY

    升級至4K超高清12G-SDI接口時需要考慮的三問題

    圖1:高分辨率視頻如果你是名研究視頻切換器、顯示器、路由器、具有串行數(shù)字視頻接口 (SDI) 的格式轉換器或分布式放大器燈廣播或專業(yè)視頻設備的系統(tǒng)設計人員,你很有可能考慮過以下這三
    發(fā)表于 11-16 07:10

    嵌入式系統(tǒng)的可用

    設計人員正在調整各種可用體系結構,以滿足客戶對用于下代超級可靠嵌入式系統(tǒng)應用的持久數(shù)據(jù)接口的需求。
    發(fā)表于 07-22 15:07 ?772次閱讀

    淺談Kubernetes集群的可用方案

    性還應包含以下兩層面的考慮:etcd數(shù)據(jù)存儲的可用性和Kubernetes Master組件的可用
    發(fā)表于 10-11 10:04 ?1次下載
    淺談Kubernetes集群的<b class='flag-5'>高</b><b class='flag-5'>可用</b>方案

    通過安裝Linux-HA軟件可以實現(xiàn)Linux雙機系統(tǒng)的可用性解決方案

    簡介通過安裝Linux-HA軟件,可以實現(xiàn)Linux雙機系統(tǒng)的可用性解決方案,實現(xiàn)雙機系統(tǒng)的熱備份,這篇文章對于HA做了詳細的解讀。
    的頭像 發(fā)表于 12-20 14:24 ?8345次閱讀
    通過安裝<b class='flag-5'>該</b>Linux-HA軟件可以實現(xiàn)Linux雙機系統(tǒng)的<b class='flag-5'>高</b><b class='flag-5'>可用</b>性解決方案

    阿里云應用可用服務公測發(fā)布

    產品介紹:?應用可用服務 AHAS 是款專注于提高應用可用能力的 SaaS 產品,提供應用架構自動探測、故障注入式
    發(fā)表于 11-28 16:20 ?536次閱讀

    設計登錄接口我們要考慮哪些地方?

    的時候,發(fā)現(xiàn)很多同學雖然都有在簡歷上寫:負責項目的登錄/注冊功能模塊的開發(fā)和設計工作,但是都只是簡單的實現(xiàn)了功能邏輯,在安全方面并沒有考慮太多。 這篇文章主要是和大家聊聊,在設計
    的頭像 發(fā)表于 06-03 09:36 ?1869次閱讀

    探究Kafka宕機引發(fā)的可用問題

    處理而生的Kafka,所以我直很好奇Kafka的可用實現(xiàn)和保障。從Kafka部署后,系統(tǒng)內部使用的Kafka直運行穩(wěn)定,沒有出現(xiàn)不可用
    的頭像 發(fā)表于 10-20 15:41 ?2183次閱讀

    Nginx可用方案

    可用HA(High Availability)是分布式系統(tǒng)架構設計中必須考慮的因素之,它通常是指,通過設計減少系統(tǒng)不能提供服務的時間。如果
    的頭像 發(fā)表于 02-01 09:19 ?1200次閱讀

    互聯(lián)網(wǎng)三并發(fā)、高性能、可用)中的可用

    那么這么多組件怎么做可用設計呢,其實任何組件要做可用,都離不開「冗余」和「自動故障轉移」,眾所周知單點是
    的頭像 發(fā)表于 02-14 09:27 ?6307次閱讀

    帶寬數(shù)字內容保護(HDCP)系統(tǒng)到HDMI的映射

    保護的接口上流經(jīng)樹形的 HDCP 接收器拓撲。本規(guī)范描述了內容保護機 制:(1)HDCP 接收器
    發(fā)表于 02-21 18:04 ?0次下載

    可用于計量電容的電路

    這是可用于計量電容的電路。電路類似于以前的儀表電路。它有點區(qū)別,電路使用晶體管而不是邏
    的頭像 發(fā)表于 07-28 15:50 ?1284次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>可用</b>于計量電容的電路

    電源和接口的EMC設計考慮

    電源和接口的EMC設計考慮
    的頭像 發(fā)表于 10-17 16:38 ?2468次閱讀
    電源和<b class='flag-5'>接口</b>的EMC設計<b class='flag-5'>考慮</b>

    在配置外部接口的過程當中,需要考慮的因素?

    :在配置外部接口時,安全性是重要的考慮因素。需要確保接口的傳輸數(shù)據(jù)的機密性和完整性,防止數(shù)據(jù)被篡改、泄露或未經(jīng)授權的訪問??梢圆捎眉用芗?/div>
    的頭像 發(fā)表于 12-15 15:46 ?1621次閱讀

    深入剖析RabbitMQ可用架構設計

    在微服務架構中,消息隊列故障導致的系統(tǒng)不可用率高達27%!如何構建真正可靠的消息中間件架構?本文將深入剖析RabbitMQ可用設計的核
    的頭像 發(fā)表于 08-18 11:19 ?1071次閱讀
    长葛市| 满洲里市| 获嘉县| 永川市| 泌阳县| 海伦市| 甘孜| 洛川县| 阳西县| 松阳县| 木里| 丰顺县| 依安县| 延川县| 鱼台县| 运城市| 自贡市| 汤原县| 云南省| 铜山县| 富蕴县| 方城县| 和静县| 云霄县| 青铜峡市| 饶平县| 清苑县| 上蔡县| 泾阳县| 北宁市| 通城县| 个旧市| 新巴尔虎右旗| 枣强县| 仙游县| 长宁县| 格尔木市| 翁牛特旗| 兰考县| 泸州市| 长武县|