日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

NSQ客戶端

NSQ 是實時的分布式消息處理平臺,其設計的目的是用來大規模地處理每天數以十億計級別的消息。 它具有分布式和去中心化拓撲結構,該結構具有無單點故障、故障容錯、高可用性以及能夠保證消息的可靠傳遞的特征。

組件要求

  • php: >=5.3.0
  • ext-json: *
  • easyswoole/easyswoole: 3.x
  • easyswoole/http-client: ^1.2.5
  • easyswoole/pool: ^1.0
  • easyswoole/spl: ^1.1
  • monolog/monolog: ~1.0
  • react/react: >=0.2.1

安裝方法

composer require easyswoole/nsq

倉庫地址

easyswoole/nsq

基本使用

注冊Nsq服務

namespace EasySwoole\EasySwoole;

use App\Producer\Process as ProducerProcess;
use App\Consumer\Process as ConsumerProcess;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;

class EasySwooleEvent implements Event
{

    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {
        // TODO: Implement mainServerCreate() method.
        // 生產者
        \EasySwoole\Component\Process\Manager::getInstance()->addProcess(new ProducerProcess());
        // 消費者
        \EasySwoole\Component\Process\Manager::getInstance()->addProcess(new ConsumerProcess());
    }

    ......

}

生產者

namespace App\Producer;

use EasySwoole\Component\Process\AbstractProcess;

class Process extends AbstractProcess
{
    protected function run($arg)
    {
        go(function () {
            $config = new \EasySwoole\Nsq\Config();
            $topic  = "topic.test";
            $nsqlookup = new \EasySwoole\Nsq\Lookup\Nsqlookupd($config->getNsqdUrl());
            $hosts = $nsqlookup->lookupHosts($topic);

            foreach ($hosts as $host) {
                $nsq = new \EasySwoole\Nsq\Nsq();
                for ($i = 0; $i < 10; $i++) {
                    $msg = new \EasySwoole\Nsq\Message\Message();
                    $msg->setPayload("test$i");
                    $nsq->push(
                        new \EasySwoole\Nsq\Connection\Producer($host, $config),
                        $topic,
                        $msg
                    );
                }
            }
        });
    }
}

消費者

namespace App\Consumer;

use EasySwoole\Component\Process\AbstractProcess;

class Process extends AbstractProcess
{
    protected function run($arg)
    {
        go(function () {
            $topic      = "topic.test";
            $config     = new \EasySwoole\Nsq\Config();
            $nsqlookup  = new \EasySwoole\Nsq\Lookup\Nsqlookupd($config->getNsqdUrl());
            $hosts      = $nsqlookup->lookupHosts($topic);
            foreach ($hosts as $host) {
                $nsq = new \EasySwoole\Nsq\Nsq();
                $nsq->subscribe(
                    new \EasySwoole\Nsq\Connection\Consumer($host, $config, $topic, 'test.consuming'),
                    function ($item) {
                        var_dump($item['message']);
                    }
                );
            }
        });
    }
}

附贈

  1. Nsq 集群部署 docker-compose.yml 一份,使用方式如下
    1. 保證4150,4151,4160,4161,4171端口未被占用(占用后可以修改compose文件中的端口號)
    2. 根目錄下,docker-compose up -d
    3. 訪問localhost:4171,可以查看Web版 nsqadmin 狀態。

https://github.com/easy-swoole/nsq/blob/master/docker-compose.yml

主站蜘蛛池模板: 浙江卫视台节目表| 浙江卫视今晚上8点的节目是什么| 远方的山楂树一共多少集| 陕西卫视节目表| 电影《大突围》免费观看国语| 财神经正版全文| 黄视频在线网站| 奇骏车友会| 《平凡之路》电影| 锤娜丽莎演的电视剧| 怒放的生命简谱| 羞羞的视频| 冷门森系ins冷淡风壁纸| 廖亚凡| 任喜宝| 帕兰妮·琳帕缇雅空| 美女网站视频免费黄| 迷夜电影| 延边卫视节目表今天| bbcworldservice music| 男女瑟瑟视频| 2025年最旺财聚财壁纸| 双重欲望| 超薄轻舞玉女女裤广场舞| 变态的视频| 铁探粤语版在线观看| 蒲公英家族| 日本十大歌姬排名| 香蜜沉沉烬如霜吻戏| 电影《遇见你》免费观看| 四川影视文艺频道| 刀客家族的女人演员表| 中长发图片2024最新款女| 金狮| free loop中文版歌词| 电影《exotica》完整版观看| 一夜风流| 姐妹大结局45集剧情介绍| 花宵道中1| 流浪地球2演员表| 《剪窗花》童谣|