原创 tp中的容器和依賴注入

容器 用來更方便的管理類依賴及運行依賴注入的工具  

原创 TP框架 事件

1. 在程序運行到應用模塊的時候,先進行事件的註冊: 對事件進行監聽註冊 監聽註冊 其中,獲取監聽權柄         通過以上程序,將該事件的監聽保存到 listeners 中   2. 事件的分發   如果該事件的監

原创 “12306”是如何支撐百萬QPS的

12306 搶票,極限併發帶來的思考 雖然現在大多數情況下都能訂到票,但是放票瞬間即無票的場景,相信大家都深有體會。 尤其是春節期間,大家不僅使用 12306,還會考慮“智行”和其他的搶票軟件,全國上下幾億人在這段時間都在搶票。 “123

原创 PHP策略模式定義與用法

概述策略模式屬於對象的行爲模式。其用意是針對一組算法,將每個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發生變化UML圖策略模式中主要角色這個模式設計到三個角色:環境角色(Con

原创 PHP設計模式 - 門面模式(Facade)

打個比方,比如我們要在淘寶買東西,我基本上只需要鼠標點一些按鈕就完成了。 但是實際上網站的後臺是 很多個子系統一起去完成 你購買商品的任務的,比如網站系統,購物車系統,訂單系統,用戶中心繫統,支付系統。 這些系統 對外通過了統一的接口,讓你

原创 Swoole 協程與 Go 協程的區別

進程、線程、協程的概念# 進程是什麼? 進程就是應用程序的啓動實例。例如:打開一個軟件,就是開啓了一個進程。進程擁有代碼和打開的文件資源,數據資源,獨立的內存空間。 線程是什麼? 線程屬於進程,是程序的執行者。一個進程至少包含一個主

原创 MySQL細節問題

1、MySQL的複製原理以及流程 (1)、複製基本原理流程 1. 主:binlog線程——記錄下所有改變了數據庫數據的語句,放進master上的binlog中; 2. 從:io線程——在使用start slave 之後,負責從master

原创 微服務架構、實現服務發現、服務治理、熔斷降級

     Laravel中的容器,模仿Java語言  

原创 ZooKeeper和Consul的區別及選取

1.ZooKeeper的主要功能:(1)作爲配置信息的存儲的中心服務器(2)命名服務(3)分佈式同步(4)分組服務工作原理:如果只是打算將ZooKeeper作爲微服務發現工具,就需要用到其配置存儲和分佈式同步的功能。前者可以理解成具有一致性

原创 MySQL是如何處理千萬級數據

mysql 分表思路 一張一億的訂單表,可以分成五張表,這樣每張表就只有兩千萬數據,分擔了原來一張表的壓力,分表需要根據某個條件進行分,這裏可以根據地區來分表,需要一箇中間件來控制到底是去哪張表去找到自己想要的數據。 中間件:根據

原创 PHP 疑難雜症:解決守護進程時 Redis 假死

內容簡介:背景:公司業務有一個常駐後臺運行的守護進程。在這個守護進程當中使用了 Redis List 結構保存業務數據進行隊列消費。結果運行過程中,有時候半個月,有時候幾個月就會突然不再消費隊列裏面的數據。當時懷疑是 PHP 不適合編寫這種

原创 常見Elasticsearch 高頻面試題答案詳細解析

前言 1.Elasticsearch 是一個分佈式的 RESTful 風格的搜索和數據分析引擎。 (1)查詢 : Elasticsearch 允許執行和合並多種類型的搜索 — 結構化、非結構化、地理位置、度量指標 — 搜索方式隨心而變

原创 pcntl_fork 引起的奇怪 bug

最近隨手寫了個獲取軟件最新版本號的程序,但是在處理多進程併發的時候遇到了問題。我想在用戶請求的時,輸出已經保存的版本號,同時異步抓取最新的版本號。 數據存儲用的 redis,在父進程中,與 redis 的通訊沒有任何問題,但是在子進程中,

原创 “分佈式事務”

又或者在網上購物明明已經扣款,但是卻告訴我沒有發生交易。這一系列情況都是因爲沒有事務導致的。這說明了事務在生活中的一些重要性。 有了事務,你去小賣鋪買東西,那就是一手交錢一手交貨。有了事務,你去網上購物,扣款即產生訂單交易。 事務的具體定義

原创 MySQL 萬字精華總結

  image 一、MySQL架構 和其它數據庫相比,MySQL有點與衆不同,它的架構可以在多種不同場景中應用併發揮良好作用。主要體現在存儲引擎的架構上,插件式的存儲引擎架構將查詢處理和其它的系統任務以及數據的存儲提取相分離。這