大型網站技術架構:核心原理與案例分析筆記

1.大型網站軟件系統的特點:

  •   高并發,大流量
  •   高可用
  • ? ? ? ?海量數據
  •   用戶分布廣泛,網絡情況復雜
  •   安全環境惡劣
  •   需求快速變更,發布頻繁
  •   漸進式發展  

2.大型網站演變架構

  1)初步應用:數據(數據庫,文件服務器)和應用程序跑在單一服務器上

  2)數據與應用分離:數據庫服務器,文件服務器,應用程序服務器

  3)緩存改善性能:(應用程序(帶有本地緩存)-->外接分布式緩存)-->數據庫服務器以及文件服務器對接

  4)應用程序集群:使用負載均衡策略來進行請求分布

      負載均衡調度器--->(多個飲用程序分布式部署)--->外接分布式緩存--->數據庫服務器以及文件服務器對接

  5)數據庫讀寫分離:當單一數據庫IO量達到極限時候,需要對數據庫進行集群

      將數據庫服務器進行分布式

        數據庫服務器(主庫(寫數據庫)--->多個從庫用于數據select)

  6)CDN加速

    在負載均衡前面添加一層反向代理服務器和Cdn加速器,將一些緩存數據盡早返回給服務器,讓頁面反應速度加快

    Cdn加速器-->反向代理->負載均衡調度器--->(多個飲用程序分布式部署)--->外接分布式緩存--->數據庫服務器以及文件服務器對接

  7)分布式數據庫以及分布式文件服務器

    當數據庫中數據量非常大的時候,可以將這個不同業務的數據放在不同的物理機上。

    當文件數據量比較大時候,單一文件服務器不能承載時候,可以將單一文件服務器改為分布式文件服務器

  8)NOSQL和搜索引擎

    當大數據量大文件量的時候,必定會涉及到文件數據的搜索,此時需要的是NOSQL以及搜索引擎服務器給其提供搜索服務,減輕數據源管理的麻煩

  9)業務拆分:

    將一個巨大的應用分為不同的業務模塊進行開發,將每一個不同模塊的應用進行分布在不同的服務器中進行使用,不同模塊與模塊之間采用消息隊列進行通信

3.架構模式:

  1.單一應用(初期應用):應用層,服務層,數據層整合在一起;

  2.數據分層:將應用分為:應用層,服務層,數據層

  3.分割:根據業務進行模塊分割,將一個大應用分割成一個一個的小模塊進行開發

  4.分布式部署:

    分布式應用和服務

    分布式靜態資源

    分布式數據和存儲

    分布式計算

  5.集群:單一服務器不能承擔該任務時候,需要對其進行集群部署

  6.緩存:

     CDN

     反向代理

     本地緩存

     分布式緩存

  7.異步調用

    當數據量巨大時候,可以采用異步調用策略進行調度。

    其實現原理相當于是和生產者和消費者模式差不多采用消息隊列實現的異步

  8冗余:

    對數據進行冷熱備份

  9.自動化

    自動化運維方面,自動化監控

  10安全化:

    通過驗證碼機制以及防止SQL注入問題

4.TPS,HPS,QPS

  TPS:每秒事物數

  HPS:每秒的HTTP請求數

  QPS:每秒的查詢數

轉載于:https://www.cnblogs.com/lonecloud/p/7447410.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282589.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1777:文件結構“圖”

1777:文件結構“圖” 查看提交統計提問總時間限制: 1000ms內存限制: 65536kB描述在計算機上看到文件系統的結構通常很有用。Microsoft Windows上面的"explorer"程序就是這樣的一個例子。但是在有圖形界面之前,沒有圖形化的表示方法的,那時候最…

thinkphp出現Call to undefined function Think\C() in ... online 313

造成這個問題的原因很多,在這里我只說明我自己遇到之后解決的辦法 我將functions.php改成了function.php之后,修改了一些其他無關緊要的東西出現了這個問題,來回排查,各種嘗試,最后,將function.php改回functions.php,可以正常運行

Oracle數據庫IP訪問限制(IP白名單黑名單)

1、編輯sqlnet.ora內容為:#允許訪問的IP(白名單)TCP.INVITED_NODES(127.0.0.1,192.168.56.109,ip2,ip3,..,..本地IP..)若使用白名單,必須有本地IP,否則監聽會起不來#不允許訪問的IP(黑名單)#TCP…

WPF效果第一百九十九篇之Gamma曲線

前面效果中分享了模塊對比;今天大周末那就再來分享一下最近實現的效果;基于YX^n公式根據不同的系數繪制Gamma曲線效果如下圖:1、曲線的話,咱就用最簡單的方式繪制一堆點:PathFigure pathFigure new PathFigure(){StartPoint new Point(0, count),};for(double x 0; x < 1…

圖片序列化和反序列化成圖片文件(代碼)

// // ViewController.m // 圖片序列化和反序列化 // // Created by Qlinchao on 17/3/14. // Copyright © 2017年 QLC. All rights reserved. //#import "ViewController.h"interface ViewController () property (weak, nonatomic) IBOutlet UIImageView …

windows 下 MyEclipse 逆向工程生成hiberate 對應配置文件以及 javaBean。

步驟1&#xff1a; 右邊工具欄 -> 右擊你的項目 -> 選中 MyEclipse -> Project Facets -> install Hibernate Facet -> 選擇對應的版本&#xff08;以及一些你想要的配置&#xff09; 步驟2&#xff1a; 導航欄 -> window -》 show View -> Other 。 然…

php加解密

一 對稱加密 1.mycyrpt的對稱加密: /*** param $key //數據加密密鑰 由自己定義,長度有限制 string* param $string //需要進行加解密的字符串 string* param $decrypt //加密還是解密 (最簡單的,0代表加密,1代表解密)* return string*/ function encryptDecrypt($key, $st…

深入理解Spring Boot數據源與連接池原理

? Create by ysterfoxmail.com 2018-8-2一&#xff1a;開始 在使用Spring Boot數據源之前&#xff0c;我們一般會導入相關依賴。其中數據源核心依賴就是spring‐boot‐starter‐jdbc 如下 <dependency><groupId>org.springframework.boot</groupId> …

Dapr 集成 Open Policy Agent 實現 接口的訪問控制

大型項目中基本都包含有復雜的訪問控制策略&#xff0c;特別是在一些多租戶場景中&#xff0c;例如Kubernetes中就支持RBAC&#xff0c;ABAC等多種授權類型。Dapr 的 中間件 Open Policy Agent 將Rego/OPA策略應用到傳入的Dapr HTTP請求中。Open Policy AgentOpen Policy Agent…

【Java】BigDecimal

一、前言 在使用Java&#xff0c;double 進行運算時&#xff0c;經常出現精度丟失的問題&#xff0c;總是在一個正確的結果左右偏0.0000**1。 特別在實際項目中&#xff0c;通過一個公式校驗該值是否大于0&#xff0c;如果大于0我們會做一件事情&#xff0c;小于0我們又處理其他…

PHP獲取當前頁面URL

//獲取頁面url function curPageURL() {$pageURL http;if (!empty($_SERVER[HTTPS])) {$pageURL . "s";}$pageURL . "://";if ($_SERVER["SERVER_PORT"] ! "80") {$pageURL . $_SERVER["SERVER_NAME"].":".$_SER…

【招聘(大連)】北森云計算 .NET 專場招聘

為了更好的實現戰略布局&#xff0c;逐步形成以三個產品研發中心&#xff08;北京、成都、大連&#xff09;為主&#xff0c;青島和南京為輔的產品研發團隊配置。北森云第三研發中心&#xff08;大連&#xff09;正式成立&#xff0c;目前大連的人選招聘正式開啟&#xff0c;歡…

PHP強制下載文件

//有時我們不想讓瀏覽器直接打開文件&#xff0c;如PDF文件&#xff0c;而是要直接下載文件&#xff0c;那么以下函數可以強制下載文件 //函數中使用了application/octet-stream頭類型。 function downloads($filename,$dir./) {$filepath $dir.$filename;if (!file_exists($f…

F5基于證書認證的客戶端登錄

1.生成密鑰RSA類型&#xff0c;密碼&#xff1a;123456保存為Openssl格式2.上傳客戶機SecureCRT生成的公鑰 Identity.pub到用戶home目錄下.ssh文件夾中cd .sshmv Identity.pub authorized_keys ##cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys3.更改F5 ssh配置文件tmsh…

C#多線程編程-必知必會

“發現問題的能力&#xff0c;運用技術解決問題的能力&#xff0c;是一個技術人成長的關鍵”圖片故事&#xff1a;洋姜的花&#xff0c;拍攝于2022年7月23日&#xff0c;地點&#xff1a;北京奧林匹克森林公園 &#xff0c;攝影師&#xff1a;劉先生概要&#xff1a;使用C#發起…

理解Go Interface

理解Go Interface1 概述Go語言中的接口很特別&#xff0c;而且提供了難以置信的一系列靈活性和抽象性。接口是一個自定義類型&#xff0c;它是一組方法的集合&#xff0c;要有方法為接口類型就被認為是該接口。從定義上來看&#xff0c;接口有兩個特點:接口本質是一種自定義類型…

『中級篇』Dockerfile詳解(17)

一般的&#xff0c;Dockerfile 分為四部分&#xff1a;基礎鏡像信息、維護者信息、鏡像操作指令和容器啟動時執行指令。 ####官網學習 https://docs.docker.com/engine/reference/builder/#usage ####FROM 必須為第一個命令&#xff0c;指定基礎鏡像 FROM <image> FROM &…

洛谷 1165日志分析

題目描述 M 海運公司最近要對旗下倉庫的貨物進出情況進行統計。目前他們所擁有的唯一記錄就是一個記錄集裝箱進出情況的日志。該日志記錄了兩類操作&#xff1a;第一類操作為集裝箱入庫操作&#xff0c;以及該次入庫的集裝箱重量&#xff1b;第二類操作為集裝箱的出庫操作。這些…

KestrelServer詳解[1]:注冊監聽終結點(Endpoint)

具有跨平臺能力的KestrelServer是最重要的服務器類型。針對KestrelServer的設置均體現在KestrelServerOptions配置選項上&#xff0c;注冊的終結點是它承載的最重要的配置選項。這里所謂的終結點&#xff08;Endpoint&#xff09;與“路由”介紹的終結點不是一回事&#xff0c;…

php截取字符串,帶中文,多余的省略號代替

function subtext($text, $length) {if(mb_strlen($text, utf8) > $length) {return mb_substr($text, 0, $length, utf8)....;} else {return $text;}}$str 我們是family happy family; echo subtext($str,5); //我們是fa...