zoukankan      html  css  js  c++  java
  • rabbitmq简单运用

    <?php
    /**
     * 生产者
     */
    
    
    $connection = new AMQPConnection([
        'host' => '192.168.23.130',
        'port' => 5672,
        'login' => 'rabuser',
        'password' => '123456'
    ]);
    
    $connection->connect() or die('连接失败');
    
    try{
    
        $exchange_name = 'trades';
        $route_key = '/trade';
        //投递消息到中间件
    
        $channel = new AMQPChannel($connection);//创建消息通道
    
        $exchange = new AMQPExchange($channel);//通过通道连接交换几
        //设置通道名称
        $exchange->setName($exchange_name);
    
        $data = json_encode(['time'=>time()]);
        //发布消息到交换机中
        $exchange->publish($data,$route_key);
    
    
    }catch (AMQPChannelException $e){
        var_dump($e);
    }
    

      

    <?php
    /**
     * 消费者
     */
    
    $connection = new AMQPConnection([
        'host' => '192.168.23.130',
        'port' => 5672,
        'login' => 'rabuser',
        'password' => '123456'
    ]);
    
    $connection->connect() or die('连接失败');
    
    
    try{
    
        $exchange_name = 'trades';
        $route_key = '/trade';
        $queue_name = 'queue';
        //投递消息到中间件
    
        $channel = new AMQPChannel($connection);//创建消息通道
    
        $exchange = new AMQPExchange($channel);//通过通道连接交换几
        //设置通道名称
        $exchange->setName($exchange_name);
        //三种获取消息的模式,直连模式,主题模式,广播模式
    
        $exchange->setType(AMQP_EX_TYPE_DIRECT);
        //声明
        $exchange->declareExchange();
    
        //声明队列绑定交换机路由
        $queue = new AMQPQueue($channel);
        $queue->setName($queue_name);
        $queue->declareQueue();
    
        //绑定监听获取数据
        $queue->bind($exchange_name,$route_key);
    
        //消费数据,默认阻塞监听获取数据
        $queue->consume(function ($event,$queue){
            //获取数据
            $msg = $event->getBody();
    
            var_dump($msg);
            var_dump($queue);
            //回应ACK
            $queue->ack($event->getDeliveryTag());
        });
    
    }catch (AMQPChannelException $e){
        var_dump($e);
    }
    

      

  • 相关阅读:
    [设计模式]暂时不考虑多线程的单例模式
    [设计模式]策略模式
    [设计模式]工厂模式
    [设计模式]观察者模式1(用JDK提供的API)
    使用visual studio 2013 快速搭建phonegap开发环境
    js日期计算及快速获取周、月、季度起止日
    HTTP 错误 500.21
    C# 实现对网站数据的采集和抓取
    js设置控件的隐藏与显示的两种方法
    jQuery操作checkbox选择
  • 原文地址:https://www.cnblogs.com/pangxiaox/p/11070926.html
Copyright © 2011-2022 走看看