原创 如何保障消息100%投遞成功?如何保證消息冪等性

可能出現消息丟失的情況? Producer在把Message發送Broker的過程中,因爲網絡問題等發生丟失,或者Message到了Broker,但是出了問題,沒有保存下來 針對這個問題,Producer可以開啓MQ的事務,如果這個

原创 構建PHP微服務生態

伴隨着微服務架構的快速發展,各種開發語言各種類型的微服務開發框架陸續出現,在近日舉辦的 PHPCon 大會上,來自開源微服務框架 TARS 核心開發組的梁晨,爲開發者分享了 TARS-PHP 在 TARS 構建微服務生態中扮演的角色。梁晨同

原创 Kafka的Consumer API有兩種

High Level Consumer APILow Level Consumer API對於開發這來說,選用哪個,首先要弄清楚這兩種API的工作原理什麼樣,分別開放了哪些功能。 High Level Consumer API說明 High

原创 Elasticsearch流程設計

一、控制器層的更新、添加、刪除 class AddKnowledgeAction extends CAction { //add and update public function actionPost() {

原创 Linux啓動PHP的多進程任務與守護redis隊列

這裏先說個理解: php的多進程任務:多個php子進程去處理任務 我們先了解一下,php進程在linux的表現形式 #查看php進程 ps -ef | grep php 1 2 上圖所示 有一個php-fpm:master 這個是主進

原创 如何保證消息不丟失?處理重複消息?消息有序性?消息堆積處理

核心點有很多,爲了更貼合實際場景,我從常見的面試問題入手: 如何保證消息不丟失? 如何處理重複消息? 如何保證消息的有序性? 如何處理消息堆積? 當然在剖析這幾個問題之前需要簡單的介紹下什麼是消息隊列,消息隊列常見的一些基本術語和概念。

原创 linux 進程管理和內存分配

1、進程相關概念   進程:正在運行中的程序   內核功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等   Process:運行中的程序的一個副本,是被載入內存的一個指令集合    進程 ID(Process ID,PID

原创 PHP動態模式和靜態模式區別

php-fpm的進程數可以根據設置分爲動態和靜態。 靜態:直接開啓指定數量的php-fpm進程,不再增加或者減少;動態:開始的時候開啓一定數量php-fpm進程,當請求變大的時候,動態的增加php-fpm進程數到上限,當空閒的時候自動釋

原创 php併發控制 , 樂觀鎖

由於悲觀鎖在開始讀取時即開始鎖定,因此在併發訪問較大的情況下性能會變差。對MySQL Inodb來說,通過指定明確主鍵方式查找數據會單行鎖定,而查詢範圍操作或者非主鍵操作將會鎖表。 接下來,我們看一下如何使用樂觀鎖解決這個問題。 MYSQL

原创 redis集羣和哨兵的區別

監控主數據庫和從數據庫是否正常運行。主數據庫出現故障時自動將從數據庫轉換爲主數據庫。sentinel發現master掛了後,就會從slave中重新選舉一個master。哨兵模式強調高可用Sentinel 系統用於管理多個 Redis 服務器

原创 如何保障mysql和redis之間的數據一致性

在高併發的業務場景下,數據庫大多數情況都是用戶併發訪問最薄弱的環節。所以,就需要使用redis做一個緩衝操作,讓請求先訪問到redis,而不是直接訪問Mysql等數據庫。這樣可以大大緩解數據庫的壓力。Redis緩存數據的加載可以分爲懶加載和

原创 PHP 微服務之【分佈式事務】

分佈式事務一直是微服務的一個難點。相關的解決方案和框架大部分是 java 的,那麼 php 該如何解決呢?下面一步一步講解如何用 php 解決分佈式事務。   單機單數據源事務 首先從單機事務開始。 大概邏輯如下 : try {

原创 PHP規範PSR0和PSR4的理解

一、PSR0簡介 下文描述了若要使用一個通用的自動加載器(autoloader),你所需要遵守的規範:   一個完全標準的命名空間(namespace)和類(class)的結構是這樣的:\<Vendor Name>\(<Namespace

原创 elasticsearch面試必考

面試題 es 寫入數據的工作原理是什麼啊?es 查詢數據的工作原理是什麼啊?底層的 lucene 介紹一下唄?倒排索引瞭解嗎? 面試官心理分析 問這個,其實面試官就是要看看你瞭解不瞭解 es 的一些基本原理,因爲用 es 無非就是寫入數據,

原创 給你四個座標點,判斷它們能不能組成一個矩形,如判斷([0,0],[0,1],[1,1],[1,0])能組成一個矩形

矩形:   矩形對角線相等,且四個角爲直角。所以可以根據勾股定理判定。 思路:   首先判斷座標點是否有重複,然後四個座標點可以求得它們兩兩之間的距離,只要兩條短邊的平方相加等於長邊平方即可判定它爲矩形。 注意:   正方形是特殊的矩形。