原创 如何保障消息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])能組成一個矩形
矩形: 矩形對角線相等,且四個角爲直角。所以可以根據勾股定理判定。 思路: 首先判斷座標點是否有重複,然後四個座標點可以求得它們兩兩之間的距離,只要兩條短邊的平方相加等於長邊平方即可判定它爲矩形。 注意: 正方形是特殊的矩形。