设为首页收藏本站

河南工业大学论坛|工大小窝|河南工业大学BBS|惜缘论坛|2006-2021工大小窝一直在你身边!

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1020|回复: 2
打印 上一主题 下一主题

Java获取php端放入rabbitmq内的音讯

[复制链接]
跳转到指定楼层
1
发表于 2014-11-28 13:52:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景:项目中一个场景需要用java端的处置代码获取php端放到rabbitmq内的音讯,然后做相应业务的处置。
  条件:rabbitmq服务器已经搭建好,php端的音讯发布正常运转。
  首要:下载rabbitmq-client对应的java版jar包(spring如同有相应的支持)
  开端代码coding的作业,上代码
  package com.eelly.imagesearch.common;
  import com.rabbitmq.client.Channel;
  import com.rabbitmq.client.Connection;
  import com.rabbitmq.client.ConnectionFactory;
  import com.rabbitmq.client.GetResponse;
  public class RabbitMqControll {
  /**
  * 读取RabbitMq中的存储信息
  *
  * @param queue_name 行列名
  * @param exchange_name 交流机名
  * @param route_key 绑定用到的route_key
  * @param durable 是不是耐久化
  */
  public void readRabbitMqInfo (String queue_name,
  String exchange_name, String route_key, boolean durable)
  {
  ConnectionFactory factory = new ConnectionFactory();
  // 设置服务器ip
  factory.setHost("172.18.107.66");
  // 设置rabbitmq服务器运转的端口
  factory.setPort(5672);
  // 设置rabbitmq服务器衔接用户
  factory.setUsername("guest");
  // 设置rabbitmq服务器衔接用户暗码
  factory.setPassword("guest");
  // 设置rabbitmq服务器节点目录(自己理解)
  factory.setVirtualHost("/");
  try {
  // 创立工厂衔接
  Connection connection = factory.newConnection();
  // 创立通道
  Channel channel = connection.createChannel();
  // 声明交流机(设置有关特点时需要和php端的共同)
  channel.exchangeDeclare(exchange_name, "direct", durable);
  // 声明音讯行列(设置有关特点时需要和php端的共同)
  channel.queueDeclare(queue_name, durable, false, true, null);
  // 绑定音讯行列(设置有关特点时需要和php端的共同)
  channel.queueBind(queue_name, exchange_name, route_key);
  System.out.println("
  • Waiting for messages. To exit press CTRL+C");
      // basicConsume花费形式
      /*channel.basicQos(1);//音讯分发处置
      QueueingConsumer consumer = new QueueingConsumer(channel);
      channel.basicConsume(queue_name, false, consumer);
      while (true) {
      QueueingConsumer.Delivery delivery = consumer.nextDelivery();
      String message = new String(delivery.getBody());
      System.out.println(" [x] Received '" + message + "'");
      // 提交音讯处置完结回复
      channel.basicAck(delivery.getEnvelope()。getDeliveryTag(), false);
      }*/
      // basicGet花费形式
      while (true)
      {
      // get方法主动花费
      GetResponse res=channel.basicGet(queue_name, false);
      if (res != null && res.getMessageCount() >= 0)
      {
      System.out.println(res.getMessageCount());
      String message = "";
      message = new String(res.getBody());
      channel.basicAck(res.getEnvelope()。getDeliveryTag(), false);
      System.out.println(" [x] Received '" + message + "'");
      }
      else
      {
      System.out.println("音讯行列中没有可花费的信息!");
      break;
      }
      }
      channel.close();
      connection.close();
      } catch (Exception e) {
      e.printStackTrace();
      }
      }
      }
      在开发的过程中,首要报的异常是:
      1.创立交流机和音讯行列时,设置的特点和音讯产生端的php代码设置的不一样,致使不匹配和一向重写特点
      2.在调用时一向没有断定到底是用basicConsume的花费形式仍是basicGet花费形式(前者带有监控作用,后者没有,不知道是不是由于一者有跳出while循环,一者没有的原因)

    http://java.chinatarena.com
    http://android.chinatarena.com
    http://ios.chinatarena.com
    http://php.chinatarena.com
    http://test.chinatarena.com
    http://net.chinatarena.com
    http://www.chinatarena.com
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 分享分享
    2
    发表于 2016-9-3 11:36:28 | 只看该作者
    上海添一代孕现高薪招聘代孕妈妈,19万起,2-8万招聘爱心捐卵者,愿意的话可以详聊,联系人电话:15901710061 13061888960  QQ:1833857497  1816261888 本公司提供健康卵子和借腹生子及123代试管!全套体检绝对做到无任何疾病,健康供卵、借腹生子。一代试管解决女性不孕问题,二代试管单精子注射解决男性问题,三代试管排除不健康胚胎更能决定胎儿性别!(随时可实地考察,选择添一,好孕添一)  权威认证网址:daiyun778.com
    3
    发表于 2016-9-3 11:36:41 | 只看该作者
    上海添一代孕公司是上海地区最具权威的代孕公司,邀请国内众多知名生殖医院的名医坐诊并制定权威安全的治疗不孕不育方案,公司秉承专业人做专业事的精神,专注试管婴儿、代孕、捐卵相关服务11年,为众多不育不孕家庭带去爱的天使。!上海添一本着“做一个有态度的添一人”的经营理念,愿天下所有的不孕不育家庭都能求子成功,幸福美满!好孕热线:13061888960 13681813638   QQ:1816261888 1816261111 权威认证网址:daiyun778.com
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|小黑屋|Archiver|手机版|联系我们|工大小窝 ( 豫ICP备06010094号  

    GMT+8, 2024-5-1 14:12 , Processed in 0.132073 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表