当前位置: 首页>>代码示例>>Java>>正文


Java Channel类代码示例

本文整理汇总了Java中com.rabbitmq.client.Channel的典型用法代码示例。如果您正苦于以下问题:Java Channel类的具体用法?Java Channel怎么用?Java Channel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Channel类属于com.rabbitmq.client包,在下文中一共展示了Channel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] args) throws IOException {
	ConnectionFactory factory = new ConnectionFactory();
	factory.setUsername("guest");
	factory.setPassword("guest");
	factory.setVirtualHost("/");
	factory.setHost("localhost");
	factory.setPort(5672);
	Connection newConnection = factory.newConnection();

	Channel channel = newConnection.createChannel();

	Scanner scanner = new Scanner(System.in);
	String message = "";
	while(!message.equals("exit")){
		System.out.println("Enter your message");
		message = scanner.next();
		channel.queueDeclare("flink-test", true, false, false, null);
		channel.basicPublish("", "flink-test", new BasicProperties.Builder()
				.correlationId(java.util.UUID.randomUUID().toString()).build(), message.getBytes());
	}
	
	scanner.close();
	channel.close();
	newConnection.close();
}
 
开发者ID:PacktPublishing,项目名称:Practical-Real-time-Processing-and-Analytics,代码行数:26,代码来源:RMQPublisher.java

示例2: close

import com.rabbitmq.client.Channel; //导入依赖的package包/类
private void close(Connection connection, Channel channel) {
    try {
        if (channel != null && channel.isOpen()) {
            if (this.consumerTag != null) {
                channel.basicCancel(this.consumerTag);
                this.consumerTag = null;
            }
            log.info("Closing RabbitMQ Channel - " + this.serverIP);
            channel.close();
            this.channel = null;
        }
        if (connection != null && connection.isOpen()) {
            log.info("Closing RabbitMQ Connection - " + this.serverIP);
            connection.close(CLOSE_CONNECTION_TIMEOUT);
            this.connection = null;
        }
    } catch (Exception e) {
        log.error("Failed to close RabbitMQ connections " + this.serverIP, e);
    }
}
 
开发者ID:opensecuritycontroller,项目名称:osc-core,代码行数:21,代码来源:RabbitMQClient.java

示例3: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] argv) throws Exception {
  ConnectionFactory factory = new ConnectionFactory();
  factory.setHost("localhost");
  Connection connection = factory.newConnection();
  Channel channel = connection.createChannel();

  channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.FANOUT);

  String message = getMessage(argv);

  channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes("UTF-8"));
  System.out.println(" [x] Sent '" + message + "'");

  channel.close();
  connection.close();
}
 
开发者ID:bmariesan,项目名称:iStudent,代码行数:17,代码来源:EmitLog.java

示例4: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
	Channel channel = AMQPCommon.connect();
	QueueingConsumer consumer = new QueueingConsumer(channel);
	channel.basicQos(1);
	channel.basicConsume("trade.eq.q", false, consumer);

	int numMsgs = args.length > 0 ? new Integer(args[0]).intValue() : 1;
	for (int i=0; i<numMsgs; i++) {
		QueueingConsumer.Delivery msg = consumer.nextDelivery();
		System.out.println("message received: " + new String(msg.getBody()));
		Thread.sleep(1000);
		channel.basicAck(msg.getEnvelope().getDeliveryTag(), false);
	}			
	
	AMQPCommon.close(channel);
}
 
开发者ID:wmr513,项目名称:reactive,代码行数:17,代码来源:AMQPReceiver.java

示例5: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] args) throws NoSuchAlgorithmException, KeyManagementException, URISyntaxException, IOException, InterruptedException {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setUri("amqp://guest:[email protected]");
    factory.setConnectionTimeout(300000);
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    channel.queueDeclare("my-queue", true, false, false, null);

    int count = 0;

    while (count < 5000) {
        String message = "Message number " + count;

        channel.basicPublish("", "my-queue", null, message.getBytes());
        count++;
        System.out.println("Published message: " + message);

        Thread.sleep(5000);
    }
}
 
开发者ID:nyholmniklas,项目名称:rabbitmq-tutorial,代码行数:22,代码来源:Publisher.java

示例6: onMessage

import com.rabbitmq.client.Channel; //导入依赖的package包/类
/**
 * 普通消息监听
 * 
 * @param message 消息实体
 * @param channel channel 就是当前的会话通道
 * @throws Exception 备注: 手动ack就是在当前channel里面调用basicAsk的方法,并传入当前消息的tagId就可以了。
 */
@Override
public void onMessage(Message message, Channel channel) throws Exception {
	long deliveryTag = message.getMessageProperties().getDeliveryTag();
	logger.debug("deliveryTag= " + deliveryTag);
	try {
		logger.info("------消费者处理消息------");
		logger.info("receive message" + message.getMessageProperties().getAppId());
		logger.info("receive channel" + channel.getChannelNumber() + "----");
		// 获取消息
		if (null != message.getBody()) {
			EventMessage eventMessage = (EventMessage) ObjectAndByteCovertUtil.ByteToObject(message.getBody());
			if (null != eventMessage) {
				System.out.println(Thread.currentThread().getName() + ":" +  TimeUtils.getSysTime("yyyy-MM-dd HH:mm:ss") + ":[下游应用- 消费普通消息]:" + message.getMessageProperties());
				// TODO 业务处理
			}
		}
		// 消息的标识,false只确认当前一个消息收到,true确认所有consumer获得的消息(成功消费,消息从队列中删除 )
		channel.basicAck(deliveryTag, false);
	} catch (Exception e) {
		logger.warn("message consume failed: " + e.getMessage());
		// ack返回false,requeue-true并重新回到队列
		channel.basicNack(deliveryTag, false, true);
	}
}
 
开发者ID:butter-fly,项目名称:belling-spring-rabbitmq,代码行数:32,代码来源:NormalMessageConsumer.java

示例7: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] argv) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection conn = factory.newConnection();
    Channel channel = conn.createChannel();

    channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.FANOUT);

    String msg = getMessage(argv);

    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy @ HH:mm:ss");
    String sDate = sdf.format(date);

    String finalMsg = sDate + ": " + msg;

    channel.basicPublish(EXCHANGE_NAME, "", null, finalMsg.getBytes("UTF-8"));
    System.out.println("Emmited message: " + finalMsg);

    channel.close();
    conn.close();
}
 
开发者ID:VictorFerraresi,项目名称:simple-rabbitmq-logger,代码行数:23,代码来源:Emitter.java

示例8: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
/**
 * @param args
 * @throws IOException
 * @throws TimeoutException
 * @date 2017年7月11日 下午5:53:02
 * @writer junehappylove
 */
public static void main(String[] args) throws IOException, TimeoutException {
	ConnectionFactory factory = new ConnectionFactory();
	factory.setHost(host);
	factory.setUsername(username);
	factory.setPassword(password);
	factory.setPort(port);
	factory.setVirtualHost(virtualHost);
	
	Connection connection = factory.newConnection();
	Channel channel = connection.createChannel();
	channel.queueDeclare(TASK_QUEUE_NAME, true, false, false, null);
	// 分发信息
	for (int i = 0; i < 20; i++) {
		String message = "Hello RabbitMQ" + i;
		channel.basicPublish("", TASK_QUEUE_NAME, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());
		System.out.println("NewTask send '" + message + "'");
	}
	channel.close();
	connection.close();
}
 
开发者ID:pudoj,项目名称:june.mq,代码行数:28,代码来源:NewTask.java

示例9: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
/**
 * @param args
 * @throws TimeoutException
 * @throws IOException
 * @date 2017年7月13日 下午2:49:49
 * @writer junehappylove
 */
public static void main(String[] args) throws IOException, TimeoutException {

	ConnectionFactory factory = new ConnectionFactory();
	factory.setHost(host);
	factory.setUsername(username);
	factory.setPassword(password);
	factory.setPort(port);
	factory.setVirtualHost(virtualHost);
	Connection connection = factory.newConnection();
	Channel channel = connection.createChannel();
	// 声明交换机
	channel.exchangeDeclare(EXCHANGE_NAME_ROUTING, "direct");// 注意是direct
	// 发送信息
	for (String routingKey : routingKeys) {
		String message = "RoutingSendDirect Send the message level:" + routingKey;
		channel.basicPublish(EXCHANGE_NAME_ROUTING, routingKey, null, message.getBytes());
		System.out.println("RoutingSendDirect Send" + routingKey + "':'" + message);
	}
	channel.close();
	connection.close();
}
 
开发者ID:pudoj,项目名称:june.mq,代码行数:29,代码来源:RoutingSendDirect.java

示例10: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] argv) throws Exception {
		ConnectionFactory factory = new ConnectionFactory();
//		factory.setHost("");
		factory.setUri("amqp://alpha.netkiller.cn");
		factory.setUsername("admin");
//		factory.setPassword("admin123");
		Connection connection = factory.newConnection();
		Channel channel = connection.createChannel();

		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		String message = "Hello World!";
		channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
		System.out.println(" [x] Sent '" + message + "'");

		channel.close();
		connection.close();
	}
 
开发者ID:netkiller,项目名称:ipo,代码行数:18,代码来源:RabbitMQTest.java

示例11: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] argv) throws Exception {

    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

    channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT);

    String severity = getSeverity(argv);
    String message = getMessage(argv);

    channel.basicPublish(EXCHANGE_NAME, severity, null, message.getBytes("UTF-8"));
    System.out.println(" [x] Sent '" + severity + "':'" + message + "'");

    channel.close();
    connection.close();
  }
 
开发者ID:bmariesan,项目名称:iStudent,代码行数:19,代码来源:EmitLogDirect.java

示例12: main

import com.rabbitmq.client.Channel; //导入依赖的package包/类
public static void main(String[] argv) throws Exception {
  ConnectionFactory factory = new ConnectionFactory();
  factory.setHost("localhost");
  Connection connection = factory.newConnection();
  Channel channel = connection.createChannel();

  channel.queueDeclare(TASK_QUEUE_NAME, true, false, false, null);

  String message = getMessage(argv);

  channel.basicPublish("", TASK_QUEUE_NAME,
      MessageProperties.PERSISTENT_TEXT_PLAIN,
      message.getBytes("UTF-8"));
  System.out.println(" [x] Sent '" + message + "'");

  channel.close();
  connection.close();
}
 
开发者ID:bmariesan,项目名称:iStudent,代码行数:19,代码来源:NewTask.java

示例13: readMessage

import com.rabbitmq.client.Channel; //导入依赖的package包/类
private byte[] readMessage() throws Exception {
  final CountDownLatch countDown = new CountDownLatch(1);
  final AtomicReference<byte[]> result = new AtomicReference<>();

  Channel channel = sender.get().createChannel();
  try {
    channel.basicConsume(sender.queue(), true, new DefaultConsumer(channel) {
      @Override public void handleDelivery(String consumerTag, Envelope envelope,
          AMQP.BasicProperties properties, byte[] body) throws IOException {
        result.set(body);
        countDown.countDown();
      }
    });
    countDown.await(5, TimeUnit.SECONDS);
  } finally {
    channel.close();
  }
  return result.get();
}
 
开发者ID:openzipkin,项目名称:zipkin-reporter-java,代码行数:20,代码来源:RabbitMQSenderTest.java

示例14: execute

import com.rabbitmq.client.Channel; //导入依赖的package包/类
/**
 * Do something with a pooled channel (similar to Spring JDBC TransactionTemplate#execute)
 */
private <T> T execute(ChannelCallback<T> callback) throws Exception {
    Channel channel;
    try {
        channel = channelPool.borrowObject();
    } catch (IllegalStateException e) {
        // Since this method is not synchronized its possible the
        // channelPool has been cleared by another thread
        checkConnectionAndChannelPool();
        channel = channelPool.borrowObject();
    }
    if (!channel.isOpen()) {
        log.warn("Got a closed channel from the pool");
        // Reconnect if another thread hasn't yet
        checkConnectionAndChannelPool();
        channel = channelPool.borrowObject();
    }
    try {
        return callback.doWithChannel(channel);
    } finally {
        channelPool.returnObject(channel);
    }
}
 
开发者ID:HydAu,项目名称:Camel,代码行数:26,代码来源:RabbitMQProducer.java

示例15: onMessage

import com.rabbitmq.client.Channel; //导入依赖的package包/类
/**
 * 延迟消息监听并处理
 * 
 * @param message 消息实体
 * @param channel channel 就是当前的会话通道
 * @throws Exception 备注: 手动ack就是在当前channel里面调用basicAsk的方法,并传入当前消息的tagId就可以了。
 */
@Override
public void onMessage(Message message, Channel channel) throws Exception {
	long deliveryTag = message.getMessageProperties().getDeliveryTag();
	logger.debug("deliveryTag= " + deliveryTag);
	try {
		
		logger.info("[延时消息]" + message.getMessageProperties());
		// 获取消息
		if (null != message.getBody()) {
			EventMessage eventMessage = (EventMessage) ObjectAndByteCovertUtil.ByteToObject(message.getBody());
			if (null != eventMessage) {
				System.out.println(Thread.currentThread().getName() + ":" + TimeUtils.getSysTime("yyyy-MM-dd HH:mm:ss") + ":[下游应用-消费延时消息]:" + eventMessage.getObject().toString());
				// TODO 业务处理
			}
		}
		// 手动确认 - false只确认当前一个消息收到,true确认所有consumer获得的消息
		channel.basicAck(deliveryTag, false);
	} catch (Exception e) {
		logger.warn("message consume failed: " + e.getMessage());
		// ack返回false,requeue-true并重新回到队列
		channel.basicNack(deliveryTag, false, true);
	}
}
 
开发者ID:butter-fly,项目名称:belling-spring-rabbitmq,代码行数:31,代码来源:DelayMessageConsumer.java


注:本文中的com.rabbitmq.client.Channel类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。