RabbieMQ使用过程中的小问题
在rabbitmq的使用过程中,记录一些自己的使用问题
因为在我当前的项目中,我只是一个独立的分析jar,各位看官按自己需求修改
首先是pom引用:
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.1.2</version>
</dependency>
初始化Consumer
static void initConsumer(String recvipAddress,int recvport) throws IOException {
Address[] addresses = new Address[] {
new Address(recvipAddress, recvport)
};
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(RabbitConfig.UserName);
factory.setPassword(RabbitConfig.PassWord);
try {
Connection connection = factory.newConnection(addresses); // 创建连接
channel = connection.createChannel(); // 创建信道
channel.basicQos(1); // 设置客户端最多接受未被ack的消息的个数
}
catch (Exception e) {
e.printStackTrace();
}
}
初始化完成后,可以调用接收方法,接收数据
static void recvMessage(String queue) throws IOException {
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
AMQP.BasicProperties properties, byte[] body) throws IOException {
//System.out.println("Recv message=" +new String(body));
String Message =new String(body);
dataProcessing(Message); //该方法是接收到消息后,具体的处理方法
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
channel.basicAck(envelope.getDeliveryTag(), false);
}
};
channel.basicConsume(queue, consumer);
}
具体实现方法
static void dataProcessing(String body) {
//具体实现
}