1. 程式人生 > >如何設計出高可用、高效能的介面

如何設計出高可用、高效能的介面

設計介面是一件容易的事,也是件困難的事。設計介面每個人都會,每個人都能設計,也由此產生了各種各樣的理念的介面。工作這麼多年,我也很有感悟。很多人會說,設計介面多麼簡單,只要命名好,然後聯調通了,上線可以呼叫就行了。特別是非網際網路行業的人,這裡沒有歧視的意思。因為網際網路行業和傳統行業太多不一致性決定了這種思想的產生。

介面是專案裡面的最小粒度的單元,介面設計需要注意點很多,需要的考慮方方面面,很多人也不重視,而且設計介面需要的技術棧也需要很多,能充分考察到技術人的知識的廣度以及深度。下面介紹的是我工作中的一些感悟,希望能與諸位共同交流,探討。本場 Chat 主要包含以下三個方面:

  1. 介面設計需要考慮哪些方面
  2. 介面設計原則
  3. 如何保證介面的高可用、高效能

實錄提要:

  • 如果介面粒度比較細,則一個功能頁面會呼叫很多個介面來完成展示。如何優化?
  • 能否用一個開發過程中簡單的例項來分析一下如何設計和清晰地開發出一個介面?
  • 介面的訪問許可權和登入資訊驗證,從耦合度方面一般如何處理?
  • 關於介面的資料快取,是怎麼做的?
  • 目前使用 Nginx 對 get 請求做資料快取,還有別的好方式嗎?
  • 介面服務降級,人工降級還是自動降級?熔斷機制如何優雅地引入?

一場場看太麻煩?訂閱GitChat體驗卡,暢享300場chat文章!更有CSDN下載、CSDN學院等超划算會員權益!點選檢視

相關推薦

如何設計可用高效能介面

設計介面是一件容易的事,也是件困難的事。設計介面每個人都會,每個人都能設計,也由此產生了各種各樣的理念的介面。工作這麼多年,我也很有感悟。很多人會說,設計介面多麼簡單,只要命名好,然後聯調通了,上線可以呼叫就行了。特別是非網際網路行業的人,這裡沒有歧視的意思。因為網際網路行業

如何設計可用性能的接口

數據量 每天 避免 擴展性 客戶端 響應時間 tps 本地 七層 接口設計需要考慮哪些方面 接口的命名。 請求參數。 支持的協議。 TPS、並發數、響應時長。 數據存儲。DB選型、緩存選型。 是否需要依賴於第三方。 接口是否拆分。 接口是否需要冪等。

可用高效能介面設計的 16 個原則

本文來自作者LY 在 GitChat 上分享「如何設計出高可用、高效能的介面」,「閱讀原文」檢視交流實錄 「文末高能」 編輯 | 嘉仔 發起這個 Chat 只是一時興起,想了一些點就寫出來了,但自己一讀,感覺一點乾貨都沒有,真是汗顏。但還是也希望此拙文能帶來一些你的思考,歡迎交流。 介面設計需要

一張圖講清楚可用高效能可擴充套件的WEB系統架構

前言:最近在與廣東網際網路基地一起進行無線城市集中平臺的建設,在系統設計、架構調優上做了很多的探索,也在系統整合測試和效能調優中遭遇了很多的煩惱,心裡有一些所得所悟,希望與大家共同學習探討。 WEB系統最容易出現效能故障的點在哪裡? 有很多人對此不知其然,或知其然而不

java高階,併發可用高效能分散式負載均衡

1、億級流量電商網站的商品詳情頁系統架構 面臨難題:對於每天上億流量,擁有上億頁面的大型電商網站來說,能夠支撐高併發訪問,同時能夠秒級讓最新模板生效的商品詳情頁系統的架構是

java架構師課程性能調優並發tomcat負載均衡大型電商項目實戰可用可擴展數據庫架構設計Solr集群與應用分布式實戰主從復制可用集群大數據

慢查詢 主從復制 難題 jms 整合 大數 數據庫設計 企業級 nginx網站 15套Java架構師詳情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color:

15套java互聯網架構師並發集群負載均衡可用數據庫設計緩存性能優化大型分布式 項目實戰視頻教程

二階 並發 支持 線程並發 important http 系統架構 四十 mongodb入門 * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架構師、集群、高可用、高可擴

性能可用擴展ERP系統架構設計

sqlserve 學習 業務邏輯層 表設計 應用程序 log cnblogs 便在 tab ERP之痛 曾幾何時,我混跡於電商、珠寶行業4年多,為這兩個行業開發過兩套大型業務系統(ERP)。作為一個ERP系統,系統主要功能模塊無非是訂單管理、商品管理、生產采

一套可用易伸縮併發的IM群聊架構方案設計實踐

本文原題為“一套高可用群聊訊息系統實現”,由作者“於雨氏”授權整理和釋出,內容有些許改動,作者部落格地址:alexstocks.github.io。應作者要求,如需轉載,請聯絡作者獲得授權。 一、引言 要實現一整套能用於大使用者量、高併發場景下的IM群聊,技術難度遠超IM系統中的其它功能,原

分散式秒殺系統-REDIS(併發高效能庫存資料一致不限語言-設計思路一致)

一、秒殺系統準備 1、首先需要能夠抗住基本請求流量的伺服器環境 2、高可用的redis環境(叢集、主從、資料持久化) ps:如果你的每秒請求只有幾百幾千一個REDIS完全夠用不需要額外操心,另外秒殺功能產品往往會加一個小梗,那就是開始秒殺時使用者需要填寫兌換的賬號才能發起秒殺,這裡根據使用者

【陌上軒客】技術領域:涉獵JavaGoPythonGroovy 等語言,高效能、高併發、高可用、非同步與訊息中介軟體快取與資料庫分散式與微服務容器和自動化等領域; 興趣愛好:籃球,騎行,讀書,發呆; 職業規劃:勵志成為一名出色的伺服器端系統架構師。

陌上軒客 技術領域:涉獵Java、Go、Python、Groovy 等語言,高效能、高併發、高可用、非同步與訊息中介軟體、快取與資料庫、分散式與微服務、容器和自動化等領域; 興趣愛好:籃球,騎行,讀書,發呆; 職業...

15套java架構師集群可用可擴展性能並發性能優化Spring bootRedisActiveMQNginxMycatNettyJvm大型分布式項目實戰視頻教程

mycat 擴展 並發解決方案 入門到 -1 高端 資料 src nio * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java

15套java架構師並發集群可用可擴展性能性能優化RedisActiveMQMycatNettyJvm

高並發 集群 分布式 多線程 項目實戰 15套Java架構師詳情15套java架構師、集群、高可用、高可擴展、高性能、高並發、性能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式項目實戰視頻教程 視頻課程包含:高級Java架構

強一致可用自動容災能力背後,阿裏X-Paxos的應用實踐

強一致 自動容災 高可用 阿裏x-paxos 能力 axos(分布式一致性算法)作為分布式系統的基石,一直都是計算機系統工程領域的熱門話題。Paxos 號稱是最難理解的算法,其實當真這麽困難麽?X-Paxos 是阿裏巴巴數據庫團隊面向高性能、全球部署以及阿裏業務特征等需求,實現的一個高性能

可用全整合定製化,螞蟻金服自動化測試如何演進

小螞蟻說: 11月16日,在首屆安卓綠色聯盟

mysql 可用高效能mysql筆記

什麼是高可用性 高可用性是相對的沒有100%的高可用只有儘可能接近100%。 可用性每提高一點,所花費的成本都會遠超之前,可用性的效果和開銷的比例並不是線性的。 宕(dang)機的原因 執行環境問題,最普遍的是磁碟空間耗盡。 效能問題,最普

架構應用之可用複用

架構應用之高可用、高複用 。   一、儲存高可用 儲存的高可用,主要是通過資料冗餘的方式來實現高可用,複雜性主要是在如何保持資料一致性,複製延遲和網路中斷都會帶來資料不一致。主要考慮的就是,資料如何複製,如何應對複製延遲,如何應對複製中斷,各個節點的職責是什麼。

【 58沈劍 架構師之路】TCP接入層的負載均衡可用擴充套件性架構

一、web-server的負載均衡 網際網路架構中,web-server接入一般使用nginx來做反向代理,實施負載均衡。整個架構分三層: 上游呼叫層,一般是browser或者APP 中間反向代理層,nginx 下游真實接入叢集,web-server,常見web-server的

可靠性高效能可伸縮分散式基於列儲存的非關係型(NoSQL)資料庫——Hbase

一、什麼是Hbase 二、Hbase分散式叢集搭建 Mysql和Hbase的區別: 三、HBase 表儲存結構 HBase 表邏輯檢視 表的形式儲存資料,表由行和列組成。列劃分為若干個列簇 (Column Family)。 2、HBase 表結構組成 行鍵(

構建可靠高效能的web應用

目標:構建高可靠、高效能的web應用,這是接下來學習的一些重點。 一、可靠性:可擴充套件性、服務降級、負載均衡 垂直擴充套件(scala up):提高機器硬體配置,如加記憶體等 水平擴充套件:加機器,服務須無狀態,可分散式 資料庫擴充套件sharding: –垂直拆分