1. 程式人生 > >用 PHP 編寫支援高併發的網站,需要做什麼處理?

用 PHP 編寫支援高併發的網站,需要做什麼處理?

php是一個語言工具,由php來把apache/nginx/memcache/redis/mysql/httpds等工具組合到一起,根據具體的業務需求,選取不同的系統架構模型;高併發其實考驗的是系統的架構
1. 資料的讀寫層
高併發更多考驗的是資料的讀寫,最終考驗的是根據具體的業務需求進行系統的架構;哪些資料要滿足實時讀寫,哪些資料可以非同步讀寫等要考慮好;資料的讀寫模型分析清楚後就要設計資料的儲存方案,mysql擅長的是關係資料和資料統計,但是併發訪問是瓶頸;memcache擅長的是資料快取,但kv的資料結構有限;redis作為記憶體資料庫但記憶體空間畢竟沒有硬碟空間大;
各有優缺點,那麼就要根據自己的業務來綜合或者選取用這些工具
2. 靜態/動態訪問
有條件的就使用cdn,沒條件的至少弄一個靜態訪問層,至於使用apache還是nginx或者其它的,自己在虛擬機器上都安裝一遍,做一個壓力測試對比一下
非靜態訪問轉發到動態訪問層
3. 邏輯處理即php
到php了,php承接動態訪問的輸入,進行邏輯運算,最後到資料層去進行讀寫;
別做太傻的事就可以了,比如無謂的foreach迴圈,複製等操作;再比如,對於實時訪問,對10個數據進行排序,就不要再用mysql 的select order by 了,直接用php的函式來排序就好了。

相關推薦

PHP 編寫支援併發網站需要什麼處理

php是一個語言工具,由php來把apache/nginx/memcache/redis/mysql/httpds等工具組合到一起,根據具體的業務需求,選取不同的系統架構模型;高併發其實考驗的是系統的架構 1. 資料的讀寫層 高併發更多考驗的是資料的讀寫,最終考驗的是根據具體的業務需求進行系統的架構;哪些資料

一個支援併發的jdbc內建連線池

筆者根據連線池原理,寫的一個Java對應mysql的連線池,jar包較小,可單獨使用 v1.0.8更新 調整呼叫方式為介面呼叫增加分頁查詢增加事務呼叫功能優化查詢物件的裝載效率獨立出一個連線支援所

簡單的MySQL連線池支援併發

/** * 連線池類 */ package com.junones.test; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; imp

高效能併發網站架構教你搭建Redis5快取叢集

一、Redis叢集介紹 Redis真的是一個優秀的技術,它是一種key-value形式的NoSQL記憶體資料庫,由ANSI C編寫,遵守BSD協議、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 Redis最大的特性是它會將所有資料都放在記憶體中,所以讀寫速度效

使用docker搭建併發網站架構實踐6--Keepalived+Nginx實現熱備份

Keepalived+Nginx實現熱備份 思路說明: 1. 利用linux映象容器,在其中安裝keepalived和nginx, 製作新映象支援熱備份,這樣便於直接使用,但在linux映象中安裝keepalived無法實現虛擬IP,也可能是網絡卡等設定不對。 2. 在linux主機內,

使用docker搭建併發網站架構實踐0--總述

終於有時間可以分享自己之前的學習成果了,之前有幸參與了web網站的專案部署和搭建,特記錄如下。 整體網站架構如下所示:   一、具體架構如下:               二、搭建步驟

使用docker搭建併發網站架構實踐1--Docker簡介以及私有倉庫搭建

1.Docker簡介     Docker是一種作業系統容器虛擬化技術,可以理解為在作業系統的級別上虛擬出更多的虛擬主機來打包以及部署應用等。具體Docker的實現與LXC支援有很大關係,主要技術有名稱空間,控制組以及檔案聯合系統等。主要架構如下所示:   &n

阿里P9架構師談:併發網站的監控系統選型、比較、核心監控指標

在高併發分散式環境下,對於訪問量大的業務、介面等,需要及時的監控網站的健康程度,防止網站出現訪問緩慢,甚至在特殊情況出現應用伺服器雪崩等場景,在高併發場景下網站無法正常訪問的情況,這些就會涉及到分散式監控系統,對於核心指標提前監控,防患於未然。 常見的開源監控系統 1.Zabbix Zabbix是一個基

第6課 SI編寫"Hello World"智慧合約開啟EOS之旅

1,摘要 【本文目標】 通過本文實踐,能夠使用SI(Source Insight)編輯EOS的智慧合約程式碼,並通過編譯,執行來測試"Hello World"程式碼。 【前置條件】 1) 已完成了EOS編譯,編譯測試成功; 2) 錢包,賬號已建立完畢; 錢包名

支援併發的IIS Web伺服器常用設定

適用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 適用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 1、應用程式池(Application Poo

使用docker搭建併發網站架構實踐5--Docker實現Nginx+tomcat動靜分離

Docker+Nginx+Tomcat實現動靜分離 整體結構示意圖: 如上所示:docker啟動5個容器,dynamic-nginx動態nginx伺服器和static-nginx1, static_nginx2兩個靜態nginx伺服器,tomcat1和tomcat2伺

使用docker搭建併發網站架構實踐9--Tomcat證書部署及域名繫結

1 獲取證書 如果申請證書時有填寫私鑰密碼,下載可獲得Tomcat資料夾,其中有金鑰庫 www.domain.com.jks; 如果沒有填寫私鑰密碼,不提供Tomcat證書檔案的下載,需要使用者手動轉換格式生成。 可以通過 Nginx 資料夾內證書檔案和私鑰檔案生成jk

Tornado從入門到進階 打造支援併發的技術論壇

第5章 tornado的web基礎 本章介紹torando的web框架的主要模組,本章節我們將會涉及到tornado程序web開發的主要模組,為什麼我們不能再tornado中寫阻塞的io介面、以及tornado的幾個核心模組的程式碼結構,讓大家可以和上一章的知識點融合起來,本章節我們將會體會到opti

併發網站之解決策略

系統在正式上線後必將會面對大量使用者訪問,面對各種層級的高併發請求,因此我們會採用高效能的伺服器、高效能的資料庫、高效率的程式語言、高效能的Web容器等。但是這幾個方面,還無法從根本解決大型網站面臨的高負載和高併發問題。因此我們必須對此做出相應的策略和技術解決方案。 1. 負載均衡

併發降溫美團高效能、可靠四層負載均衡MGW優化實踐

負載均衡的作用及分類 網際網路初期階段,業務邏輯簡單、流量不大,單臺伺服器就可滿足日常需求。隨著網際網路的發展,業務不僅會流量爆發、邏輯越來越複雜且對可靠性的需求也逐步遞增。 這時,就需要多臺伺服器來應對單臺伺服器在效能、單點等方面凸顯出來的問題,進行效能的水平擴充套件和災備。但客戶端的流量要如何順利訪問到

mysql主從複製資料量大 併發出現數據不一致

mysql5.7的並行複製就可以解決資料延遲的問題。 MySQL 5.7並行複製時代 眾所周知,MySQL的複製延遲是一直被詬病的問題之一,然而在Inside君之前的兩篇部落格中(1,2)中都已經提到了MySQL 5.7版本已經支援“真正”的並行複製功能,官方稱為

mysql 針對併發同時修改單條資料發生衝突導致資料錯誤的問題(例如:併發下單導致庫存為負數)

畢業後第一次做的專案就是電商,但是當時也不明白這個問題。 所以給自己埋下一個坑。 先說說當初的做法,和遇到的問題。 //開啟事務 start transaction; //查詢庫存 select number from item where id = 1; //如果大於購買

Tornado從入門到進階打造支援併發的技術論壇

第5章 tornado的web基礎 本章介紹torando的web框架的主要模組,本章節我們將會涉及到tornado程序web開發的主要模組,為什麼我們不能再tornado中寫阻塞的io介面、以及tornado的幾個核心模組的程式碼結構,讓大家可以和上一章的知識點融合起來,本章節我們將會體會到opti

使用docker搭建併發網站架構實踐7--Mysql主從同步+讀寫分離+讀負載均衡

6. Mysql主從同步+讀寫分離+讀負載均衡 目標: 搭建mysql一主兩從同步 搭建從mysql讀負載均衡 結合web工程實現mysql讀寫分離 整體示意圖: 如圖所示: 192.168.238.129:負載均衡伺服器 192.168.238.128:

nginx為什麼比Apache支援併發???

        最開始接觸程式設計時,使用的是Apache伺服器,後來隨著網站使用者訪問量的增加,考慮高併發是必不可少的環節,越來越多的公司使用nginx伺服器。我們公司最近也打算更換nginx伺服器。那麼nginx和Apache有哪些異同點呢,nginx為什麼比Apach