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);
    }
    

      

  • 相关阅读:
    Linux curl使用简单介绍
    SecureCRT编码转换vim
    BigTable/HBase基本概念解读 & Hbase shell常用命令
    Crontab用法说明(Linux)
    Sina SSO 登陆过程分析
    浅谈队列
    搞怪的 log4net 记录日志 性能测试
    iBatis.Net异步多线程 操作Ibatis报错
    高并发高负载的大型网站系统架构
    [置顶] IIs Web 站点安全 监控 站点自动部署 重启
  • 原文地址:https://www.cnblogs.com/pangxiaox/p/11070926.html
Copyright © 2011-2022 走看看