【swoole】結合swoole 和 nsq 的實際應用

集合 swoole 的框架設計

爲了減小理解度,我儘可能的從源頭開始引入php

1. nsq

案例中是使用 swoole 結合一個php 框架實現的是 NSQ 訂閱功能。web

啓動命令:bash

sudo bash /www/webserver/bin/swoole.sh start nsq adminexport

解釋上面一個指令,使用 bash 執行一個項目中的腳本。swoole

start 對應啓動命令
nsq : 表明對應使用NSQ 服務
adminexport : 對應的是NSQ 的topic框架

腳本的本質,經過框架的入口文件,根據傳參,進入到的不一樣的消息中間件,及對應的服務函數

clipboard.png

2. php 訂閱

AdminexportService 繼承封裝好的 SwooleService。 在init方法中,初始化 swoole服務。而且註冊回調函數。工具

clipboard.png

AdminexportService 在重寫的 swooleWorkerStart 回調函數中,實現了NSQ 的訂閱功能spa

clipboard.png

NSQ 消息的處理設計

clipboard.png

  1. 簡單封裝了重複消息的判斷
  2. requeue 沒有消費消息的從新投遞

3. 引入 swoole

就是構造方法引入 swoole 的實例化
同時,重寫 workerStart 的方法。server

因此當執行腳本的時候,也就是啓動了 對應的swoole 服務。啓動了訂閱者的客戶端。
不斷的消費來自nsq topic 的消息

看吧,swoole 其實也很簡單。 把它當作一個工具類,拿來用就能夠了。 在實現的時候引入它,經過 WorkerStart 處理分發的消息便可。

固然更好的是使用協程。 另外吹一波,協程就是厲害
相關文章
相關標籤/搜索