反馈模式
在消费端接收到消息后,会反馈给服务器信息。
连接代码:
import java.io.IOException; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; public class GetChannel { private static Connection connection=null; private static Channel channel=null; public static Channel getCh() throws IOException{ ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); connection = factory.newConnection(); channel = connection.createChannel(); return channel; } public static void close() throws IOException{ if(channel!=null){ channel.close(); } if(connection!=null){ connection.close(); } } }
发送消息端:
import com.jiacl.finance.rabbitmq.exchange.GetChannel; import com.rabbitmq.client.Channel; import com.rabbitmq.client.MessageProperties; public class Send { final static String queueName="queuetwo"; public static void main(String args[]) throws Exception{ Channel channel = GetChannel.getCh(); channel.queueDeclare(queueName, true,false,false,null); channel.basicPublish("",queueName,MessageProperties.PERSISTENT_TEXT_PLAIN,"fuck".getBytes()); GetChannel.close(); } }
接收消息端:
import com.jiacl.finance.rabbitmq.exchange.GetChannel; import com.rabbitmq.client.Channel; import com.rabbitmq.client.QueueingConsumer; public class recvier { final static String queueName="queuetwo"; public static void main(String[] args)throws Exception { Channel channel = GetChannel.getCh(); channel.queueDeclare(queueName, true, false, false, null); channel.basicQos(1); QueueingConsumer consumer=new QueueingConsumer(channel); channel.basicConsume(queueName,false,consumer); while (true){ QueueingConsumer.Delivery delivery=consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println(message); channel.basicAck(delivery.getEnvelope().getDeliveryTag(),true); } } }