| 1 | 1/1 | 返回列表 |
| 查看: 454 | 回復(fù): 0 | |||
wqm2690新蟲 (初入文壇)
|
[交流]
高性能與高可用后端系統(tǒng)設(shè)計:從架構(gòu)到優(yōu)化
|
|
在現(xiàn)代的互聯(lián)網(wǎng)應(yīng)用中,后端系統(tǒng)的性能與可用性直接影響到用戶體驗和業(yè)務(wù)的穩(wěn)定性。無論是電商、社交平臺、在線教育還是金融系統(tǒng),高并發(fā)、高流量的挑戰(zhàn)是所有后端開發(fā)者都必須面對的難題。如何保證系統(tǒng)的高性能和高可用性,已經(jīng)成為后端架構(gòu)設(shè)計中的核心任務(wù)。 本文將從架構(gòu)設(shè)計、性能優(yōu)化、高可用性保障等方面,深入探討后端系統(tǒng)設(shè)計的最佳實踐,幫助你打造一個高效、穩(wěn)定且易于擴展的后端服務(wù)。 一、高性能與高可用性的定義 1️⃣ 高性能 高性能不僅僅是指響應(yīng)速度快,更是指系統(tǒng)能夠在高并發(fā)、高負載的情況下,保持低延遲、高吞吐量,同時高效地使用系統(tǒng)資源。高性能系統(tǒng)的設(shè)計不僅僅是針對每個單獨的操作進行優(yōu)化,還要考慮如何合理分配系統(tǒng)資源,使得整體性能得到提升。 2️⃣ 高可用性 高可用性(High Availability, HA)是指系統(tǒng)能夠在面臨硬件故障、網(wǎng)絡(luò)中斷、軟件異常等各種故障時,依然保持服務(wù)的穩(wěn)定和持續(xù)。高可用系統(tǒng)不僅要在正常運行時高效,還需要具備容錯能力和自愈能力,確保系統(tǒng)即使發(fā)生部分故障也不會導(dǎo)致整體宕機。 為了實現(xiàn)這兩個目標,我們需要在系統(tǒng)設(shè)計、架構(gòu)選擇和技術(shù)實現(xiàn)上做到全面的規(guī)劃與優(yōu)化。 二、架構(gòu)設(shè)計:分布式與微服務(wù) 1️⃣ 單體架構(gòu)的局限性 單體架構(gòu)(Monolithic Architecture)是最初的一種架構(gòu)模式,所有的代碼都在一個單一的應(yīng)用中實現(xiàn)。雖然單體架構(gòu)可以簡化開發(fā)流程,適合早期的小規(guī)模應(yīng)用,但隨著業(yè)務(wù)的增長,單體架構(gòu)會逐漸暴露出性能和擴展性的問題: 性能瓶頸:單體架構(gòu)中的所有模塊共享資源,難以應(yīng)對高并發(fā)、高負載。 部署困難:單體應(yīng)用難以靈活擴展,更新某個模塊時需要重新部署整個系統(tǒng)。 高耦合:各模塊之間緊密耦合,修改一個模塊可能會影響整個應(yīng)用。 2️⃣ 微服務(wù)架構(gòu)的引入 隨著系統(tǒng)規(guī)模的擴大,微服務(wù)架構(gòu)逐漸成為后端系統(tǒng)的主流。微服務(wù)架構(gòu)通過將單體應(yīng)用拆解為多個獨立的服務(wù),每個服務(wù)都可以獨立部署、獨立擴展。 微服務(wù)架構(gòu)的優(yōu)勢在于: 解耦性:服務(wù)間通過標準接口通信,各服務(wù)相互獨立,易于維護和擴展。 高可用性:每個服務(wù)獨立部署,即使某個服務(wù)出現(xiàn)問題,其他服務(wù)依然可以正常運行。 可擴展性:根據(jù)服務(wù)的負載情況進行水平擴展,提高整體系統(tǒng)的吞吐量。 然而,微服務(wù)架構(gòu)也帶來了新的挑戰(zhàn),如服務(wù)間的通信復(fù)雜性、分布式事務(wù)等問題,需要更強的架構(gòu)設(shè)計和技術(shù)能力來解決。 三、性能優(yōu)化:提升吞吐量與響應(yīng)速度 1️⃣ 數(shù)據(jù)庫優(yōu)化 數(shù)據(jù)庫是后端系統(tǒng)中最常見的性能瓶頸之一。為了解決數(shù)據(jù)庫性能問題,常用的優(yōu)化策略包括: 索引優(yōu)化:合理創(chuàng)建索引,避免全表掃描,提高查詢速度。 讀寫分離:使用主從復(fù)制,將讀操作和寫操作分開,減輕主數(shù)據(jù)庫的壓力。 分庫分表:當數(shù)據(jù)量增加時,可以采用分庫分表策略,將數(shù)據(jù)分布到不同的數(shù)據(jù)庫實例上,避免單一數(shù)據(jù)庫成為瓶頸。 查詢優(yōu)化:通過優(yōu)化 SQL 查詢,減少不必要的計算和數(shù)據(jù)傳輸,提升查詢效率。 2️⃣ 緩存設(shè)計 緩存是提升系統(tǒng)性能的常用手段。通過將常用數(shù)據(jù)緩存到內(nèi)存中,可以大幅減少對數(shù)據(jù)庫的訪問,提升響應(yīng)速度。常用的緩存技術(shù)有: Redis:作為高效的分布式緩存系統(tǒng),Redis 支持豐富的數(shù)據(jù)結(jié)構(gòu)和高并發(fā)訪問,廣泛應(yīng)用于緩存熱點數(shù)據(jù)、會話管理等場景。 緩存穿透與雪崩:為了避免緩存穿透,可以使用布隆過濾器來避免查詢無效數(shù)據(jù);而為了避免緩存雪崩,可以通過設(shè)置合理的過期時間和異步更新策略來防止大量緩存同時失效。 緩存更新策略:根據(jù)業(yè)務(wù)需求,設(shè)計合理的緩存失效與更新策略,確保緩存的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)一致。 3️⃣ 異步與消息隊列 對于一些耗時操作,使用異步處理和消息隊列是優(yōu)化系統(tǒng)性能的常見方式。例如: 消息隊列(如 Kafka、RabbitMQ)可以將異步任務(wù)(如郵件發(fā)送、日志記錄)放入隊列中,避免阻塞主業(yè)務(wù)流程。 異步處理:通過異步請求的方式,將不需要立即響應(yīng)的操作放到后臺處理,提高系統(tǒng)的響應(yīng)速度。 四、高可用性設(shè)計:容錯與故障恢復(fù) 1️⃣ 多節(jié)點冗余與故障轉(zhuǎn)移 為了確保系統(tǒng)的高可用性,必須設(shè)計冗余機制,即通過多個節(jié)點來保證服務(wù)在部分節(jié)點出現(xiàn)故障時,能夠正常運行。常見的高可用性設(shè)計包括: 主從復(fù)制:將服務(wù)部署到多個節(jié)點上,使用主節(jié)點和從節(jié)點的復(fù)制機制保證數(shù)據(jù)一致性。 負載均衡:通過負載均衡器(如 Nginx)將請求分發(fā)到多個后端服務(wù)器,避免單個服務(wù)器過載,提高系統(tǒng)的可用性。 故障轉(zhuǎn)移:當某個節(jié)點出現(xiàn)故障時,自動切換到備用節(jié)點,確保服務(wù)不間斷。 2️⃣ 服務(wù)熔斷與降級 當系統(tǒng)中某個服務(wù)出現(xiàn)故障時,如何防止故障蔓延,影響整個系統(tǒng)的正常運行呢? 熔斷機制:使用熔斷器(如 Hystrix)來監(jiān)控服務(wù)的健康狀態(tài),當服務(wù)的失敗率超過閾值時,自動切斷該服務(wù)的調(diào)用,防止故障蔓延。 降級策略:當系統(tǒng)負載過高時,采用降級策略,暫時關(guān)閉一些非核心功能,確保系統(tǒng)的核心業(yè)務(wù)能夠繼續(xù)運行。 3️⃣ 自動化恢復(fù)與監(jiān)控 系統(tǒng)的健康檢查與自動恢復(fù)機制是確保高可用性的關(guān)鍵。通過監(jiān)控系統(tǒng)的各項指標,及時發(fā)現(xiàn)故障,并自動恢復(fù),避免人為干預(yù): 監(jiān)控:使用 Prometheus、Grafana 等工具,實時監(jiān)控系統(tǒng)的各項資源使用情況(如 CPU、內(nèi)存、磁盤、網(wǎng)絡(luò))以及服務(wù)的健康狀態(tài)。 自動化恢復(fù):通過自動化運維工具,當服務(wù)出現(xiàn)故障時,自動進行重啟或切換操作,保證系統(tǒng)持續(xù)可用。 五、總結(jié):后端系統(tǒng)設(shè)計的核心要素 構(gòu)建高性能、高可用的后端系統(tǒng)是一個復(fù)雜且持續(xù)的過程,需要考慮到架構(gòu)設(shè)計、性能優(yōu)化、冗余機制、容錯設(shè)計等多個維度。作為后端開發(fā)者,我們不僅需要具備編寫高效代碼的能力,更需要從全局的角度進行系統(tǒng)設(shè)計,確保系統(tǒng)能夠高效運行、穩(wěn)定服務(wù),并能隨業(yè)務(wù)增長靈活擴展。 在未來,隨著用戶量和業(yè)務(wù)規(guī)模的不斷擴大,后端系統(tǒng)的復(fù)雜性也將不斷增加。因此,后端開發(fā)者應(yīng)不斷學(xué)習(xí)新技術(shù),提升架構(gòu)設(shè)計能力,并關(guān)注系統(tǒng)的長期穩(wěn)定性與可擴展性,為團隊和公司提供可靠的技術(shù)保障。 https://ucnz33wd0ct0.feishu.cn/docx/AwCLdXjizocKMLxLF2ZcPl75nzf https://ucnz33wd0ct0.feishu.cn/docx/SRVudpJ3vo0oGxxsL77cYxhDnke https://ucnz33wd0ct0.feishu.cn/docx/COIEdgCauoIwnxxhIX4c6Gf5n0f https://ucnz33wd0ct0.feishu.cn/docx/YieIdn4EYogTH6xo4z5csvqknFe https://ucnz33wd0ct0.feishu.cn/docx/QmGXdVFnzozzZZxjScvc0BwvnMb https://ucnz33wd0ct0.feishu.cn/docx/QdqUdCh86oqOrrxk7CjcvGPCnmg https://ucnz33wd0ct0.feishu.cn/docx/ABYTdVckbocgCYx9dsPcpYB6nj2 https://ucnz33wd0ct0.feishu.cn/docx/X6MjdOHycon6lXx0Z3fc4W7Gno8 https://ucnz33wd0ct0.feishu.cn/docx/CKL3dF6cSoXcC6xKKzFc5OgEnqg https://ucnz33wd0ct0.feishu.cn/docx/YFMJdNXmgoq9VmxgO5KclaAVnLb https://ucnz33wd0ct0.feishu.cn/docx/GiDFdwMfFon8HYxT6VEcPXPGnbd https://ucnz33wd0ct0.feishu.cn/docx/Q35KdzzgNojBwDx6hkgcOdlrnYa https://ucnz33wd0ct0.feishu.cn/docx/QaDmdMciKowvx0xx4m3cpBiCncb https://ucnz33wd0ct0.feishu.cn/docx/OLgidI22MoVFOGxfOkHc7HBfnPc https://ucnz33wd0ct0.feishu.cn/docx/Tkg7dNLKVozdgoxfyWgcvY2snSs https://ucnz33wd0ct0.feishu.cn/docx/I1zsddhQVornJrxem8McXrbnnig https://ucnz33wd0ct0.feishu.cn/docx/ZbBtdU29kor4JrxBtAIctkOLnFb https://ucnz33wd0ct0.feishu.cn/docx/NrhEdGXPSo3WgexILRNcvD5In1f https://ucnz33wd0ct0.feishu.cn/docx/Lztxd09bMoN6trxcAeFcAKK1n4f https://ucnz33wd0ct0.feishu.cn/docx/SgirdWeBloHlCJx1AFVcSomnnpf https://ucnz33wd0ct0.feishu.cn/docx/TaQfdMIC3oFopIxlCxLc6U6jnLc https://ucnz33wd0ct0.feishu.cn/docx/N3j7dmxtEo58RbxBJshcNxbdn8g https://ucnz33wd0ct0.feishu.cn/docx/CAMUdEP2WofsmyxqdircDB1TnOh https://ucnz33wd0ct0.feishu.cn/docx/WfpXdc2vdovwnIxsMn2cLgG3njf https://ucnz33wd0ct0.feishu.cn/docx/SmwqdIQywoU0NsxnecOcUDUrnnb https://ucnz33wd0ct0.feishu.cn/docx/SGRzdyHRzoT0Uvx7xW1cz7Mpnlh https://ucnz33wd0ct0.feishu.cn/docx/FEYOdyA7yoUXTkxr6f2cqoJznfb https://ucnz33wd0ct0.feishu.cn/docx/Wgw7d1xX3o1kNTxs3AVcBzINnHe https://ucnz33wd0ct0.feishu.cn/docx/D6m0ddWGVoxmsLxhsJQcyyK9nae https://ucnz33wd0ct0.feishu.cn/docx/CIuKdsTAOoHbcjxZwJLceXOkngJ https://ucnz33wd0ct0.feishu.cn/docx/AbardjMawo26e6xVeZac6BBtnEf https://ucnz33wd0ct0.feishu.cn/docx/JTtgdZCnLo8EMMxrHwrctgisnVn https://ucnz33wd0ct0.feishu.cn/docx/TmqBdyXRloP6tdxxfuqcaJgfnYg https://ucnz33wd0ct0.feishu.cn/docx/CiTDdDFTyoCyHhxR8XXcmpoZnFf https://ucnz33wd0ct0.feishu.cn/docx/D0Bgd4C4YoIAiXxe9FqcaSMInrd https://ucnz33wd0ct0.feishu.cn/docx/Rj1rdvus8odeJAxd8JscJFcfnAg https://ucnz33wd0ct0.feishu.cn/docx/Socrd03X8o04pWxaJmXcMT4Ynbd https://ucnz33wd0ct0.feishu.cn/docx/Vn7hdtN31oIPrCxpTABcHkLunCh https://ucnz33wd0ct0.feishu.cn/docx/Gbr9d0axRo2QPaxQhmKcIYUwnbe https://ucnz33wd0ct0.feishu.cn/docx/D9aWdjogtoRLD0x5t0vceR5Qn8b https://ucnz33wd0ct0.feishu.cn/docx/UwE9dBBA9ozesDxWS3FcSAPNnxh https://ucnz33wd0ct0.feishu.cn/docx/XprhdJkaKoUWXVxDR0YcTtqxnXb https://ucnz33wd0ct0.feishu.cn/docx/UC4Jd3I4oo1YnAxRKqFcUaa1nqb https://ucnz33wd0ct0.feishu.cn/docx/RQNjd89Rso1MdZxZRKUcqUcknie https://ucnz33wd0ct0.feishu.cn/docx/XEE1dQTvFoo71ZxXD88caYCjnXc https://ucnz33wd0ct0.feishu.cn/docx/TXq5dHpw4o8yeCxNqPwc2QeDnUb https://ucnz33wd0ct0.feishu.cn/docx/MIXEdVoFOoirDgxMlqlcMff3nwc https://ucnz33wd0ct0.feishu.cn/docx/SLeKdUvKCockb0xPPPxchkqSnlh https://ucnz33wd0ct0.feishu.cn/docx/A51iduE40omfNsxiPiEcJBkxnju https://ucnz33wd0ct0.feishu.cn/docx/KHjZdBKpcoe7b1xfxKBc1XlDnqb https://ucnz33wd0ct0.feishu.cn/docx/FZaldrVnhoqSlAxogcActTFenpd https://ucnz33wd0ct0.feishu.cn/docx/P2TqdWMRtoMZRsxXtRTcKmQknrd https://ucnz33wd0ct0.feishu.cn/docx/N7F5duxLRo7chmxtVGvczZClnCf https://ucnz33wd0ct0.feishu.cn/docx/NgQzdNrLgo8UufxUNFccGrNknJd https://ucnz33wd0ct0.feishu.cn/docx/YtK8duxiGoGRYyxI0asciDHDntc https://ucnz33wd0ct0.feishu.cn/docx/XnNkdsomdokCfHx5npLcP9uGn5d https://ucnz33wd0ct0.feishu.cn/docx/DDP9dRjH6oaDroxR01Mc2iUfnpz https://ucnz33wd0ct0.feishu.cn/docx/AAwwdOLvwo3WNMx9ODacVOUsnSe https://ucnz33wd0ct0.feishu.cn/docx/IgUhdv6FhoNJurxPEdHcMO0HnMe https://ucnz33wd0ct0.feishu.cn/docx/TPL5dgXpCoSOZqxLNOkcPlfznsb https://ucnz33wd0ct0.feishu.cn/docx/XFVGdX3wfo913WxV4APclNNQnwc https://ucnz33wd0ct0.feishu.cn/docx/T3JEdaux9oIFDYxrVjMcsDI4nod https://ucnz33wd0ct0.feishu.cn/docx/TVlAdgmYloaGgPxtk0pcHZ7GnYb https://ucnz33wd0ct0.feishu.cn/docx/X0vkdge5aojLqVxMQ8jc3m4NnCf https://ucnz33wd0ct0.feishu.cn/docx/K2e3dJhlSorRH9xXdbccWxaanQg https://ucnz33wd0ct0.feishu.cn/docx/Ee6zdsi1yocoLcxAxQwch3LLnig https://ucnz33wd0ct0.feishu.cn/docx/LyXYdZHdSoC5yaxCOETcG2MHn5f https://ucnz33wd0ct0.feishu.cn/docx/D5pidH2IXo9bdLxaFZpc6G6Onzd https://ucnz33wd0ct0.feishu.cn/docx/QHbPdkb4CoMWNQxG5tUcOUKpn0y https://ucnz33wd0ct0.feishu.cn/docx/Rm4DdNoLroqkr2xLGlocrd4YnJf https://ucnz33wd0ct0.feishu.cn/docx/EnHId69WLoJ8OMxQg3AcptfSn4f https://ucnz33wd0ct0.feishu.cn/docx/ZvHTd22XYoJN6pxmiu5cbbF6nae https://ucnz33wd0ct0.feishu.cn/docx/CpwCdgOMco2a1DxoSq7c179Onug https://ucnz33wd0ct0.feishu.cn/docx/ELaTd1LSkoaBD4xmshFcag2MnPd https://ucnz33wd0ct0.feishu.cn/docx/LOrydXNWPo9JdlxCt5xcAPR8nnf https://ucnz33wd0ct0.feishu.cn/docx/GXAKdRmhsoHFvpxDsXkc6llwnsb https://ucnz33wd0ct0.feishu.cn/docx/A7yRdctQAoEfe6xvlsVcV29In3e https://ucnz33wd0ct0.feishu.cn/docx/C6kUdRP4doE9WixSlmzcSeNinPe https://ucnz33wd0ct0.feishu.cn/docx/URFadN55ooKOkyxUUVbcg5ZKnAh https://ucnz33wd0ct0.feishu.cn/docx/XTdhdKsaaoiy1mxmFircqqEGnbg https://ucnz33wd0ct0.feishu.cn/docx/WcPidM76co8i6AxCVMRc3McBnVd https://ucnz33wd0ct0.feishu.cn/docx/JsERdyetwo8gRrxMmWQcilr0nEc https://ucnz33wd0ct0.feishu.cn/docx/ScxIdvbeyoTRpdxamwmcfVKun31 https://ucnz33wd0ct0.feishu.cn/docx/TweXdfYUAo6RxXxVRKTcFCPunih https://ucnz33wd0ct0.feishu.cn/docx/MYfod9YjLoQSsXxcZcZcb1BGnxc https://ucnz33wd0ct0.feishu.cn/docx/PObRdRjmOoN7CXxfoHWcJCzZnsh https://ucnz33wd0ct0.feishu.cn/docx/Ss5hdLzapoDPDFxbrtxcAUWBnec https://ucnz33wd0ct0.feishu.cn/docx/MiWKdV3sVoTcgfxYyeiclwYEnpf https://ucnz33wd0ct0.feishu.cn/docx/K81kdxE5PoypiPx7gGjc9ZjynEd https://ucnz33wd0ct0.feishu.cn/docx/UzkUdDHTYodWJPxtNjFcfP54n6g https://ucnz33wd0ct0.feishu.cn/docx/PJKhd7o2horJYGx5ugLcobeUnpb https://ucnz33wd0ct0.feishu.cn/docx/ARF4dVm70o1KXpxdXiXc9FupnKB https://ucnz33wd0ct0.feishu.cn/docx/V8fjdIO3qoLgzGxEKQ5crNh4noh https://ucnz33wd0ct0.feishu.cn/docx/AxsGdd6qmoevZPxMhTucrM2AnKf https://ucnz33wd0ct0.feishu.cn/docx/OkokdjQspoV367xtKcwcnimsnng https://ucnz33wd0ct0.feishu.cn/docx/JmwYd8zqZofvWoxFQUocPWJlnCd https://ucnz33wd0ct0.feishu.cn/docx/STeFdjhLXo9AXDxbr3Qcp9iznPc https://ucnz33wd0ct0.feishu.cn/docx/QAOmddlCeoEzblxqinEc3LklnTe https://ucnz33wd0ct0.feishu.cn/docx/D8uedXzm0oq7A0xble1cVdlLnYd https://ucnz33wd0ct0.feishu.cn/docx/RbdrdGpXVoSYkSx1yPxcIacdnhc https://ucnz33wd0ct0.feishu.cn/docx/UxyOdQXyQox4CNxV4Sfc7qDnnGd https://ucnz33wd0ct0.feishu.cn/docx/JiUkdwUsuo6rUvxFHk5cfct8n4d https://ucnz33wd0ct0.feishu.cn/docx/YBU1dInmTofuNsxJrhPcfVZQnVc |
| 1 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 347求調(diào)劑 +4 | 浮云滿足 2026-03-07 | 4/200 |
|
|---|---|---|---|---|
|
[考研] A區(qū)一本交叉課題組,低分調(diào)劑,招收機械電子信息通信等交叉方向 +46 | lisimayy 2026-03-04 | 59/2950 |
|
|
[考研] 材料調(diào)劑 +7 | ounce. 2026-03-05 | 15/750 |
|
|
[考研] 一志愿南大化學(xué)339分求調(diào)劑,四六級已過,有比賽,有文章 +3 | Gallantzhou 2026-03-07 | 3/150 |
|
|
[考研] 一志愿蘇大材料工程專碩293求調(diào)劑 +4 | 鋼鐵大炮 2026-03-04 | 4/200 |
|
|
[考研] 273求調(diào)劑 +5 | 星星111222 2026-03-02 | 7/350 |
|
|
[考研] 085600材料與化工(高分子)290分求調(diào)劑 +9 | wengyujian 2026-03-04 | 9/450 |
|
|
[考研] 不限學(xué)校專業(yè)的調(diào)劑同學(xué)看過來 +5 | 啊擺啊擺 2026-03-05 | 9/450 |
|
|
[考研] 304求調(diào)劑 +4 | 曼殊2266 2026-03-05 | 4/200 |
|
|
[考研] 267調(diào)劑求助 +5 | 聰少OZ 2026-03-04 | 5/250 |
|
|
[考研] 320材料一志愿西工大專碩英二數(shù)二 有兩年光伏工作經(jīng)驗 +5 | 錘某人 2026-03-04 | 8/400 |
|
|
[論文投稿]
100+4
|
Stray2021 2026-03-03 | 4/200 |
|
|
[考研] 293求調(diào)劑 +3 | 是樂渝哇 2026-03-04 | 3/150 |
|
|
[基金申請] 沒有青基直接申請面上,感覺自己瘋了 +6 | kevin63t 2026-03-02 | 12/600 |
|
|
[考研] 286 +6 | ksncj 2026-03-04 | 6/300 |
|
|
[考研] 347分電子信息專碩求調(diào)劑 +3 | 咕嘟咕嘟1 2026-03-03 | 3/150 |
|
|
[考研] 281求調(diào)劑 +3 | Y?l?h 2026-03-04 | 3/150 |
|
|
[考研] 292求調(diào)劑 +3 | sgbl 2026-03-03 | 3/150 |
|
|
[考研] 【2026 碩士調(diào)劑】課題組 招收調(diào)劑生 +3 | 考研版棒棒 2026-03-02 | 5/250 |
|
|
[考研] 275求調(diào)劑 +3 | L-xin? 2026-03-01 | 6/300 |
|