网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容 知识问答

RabbitMQ RPC java实现

时间:2024-11-03 10:03:11

1、搭建RabbitMQ 服务,设置相关参数,本文总线服务已提前安装,再次不在赘述相关步骤。

RabbitMQ RPC java实现RabbitMQ RPC java实现

3、客户端代码:RPCClient.javapackagecom.cn.trap.test.rpc;importcom.rabbitmq.client.ConnectionFactory;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.QueueingConsumer;importcom.rabbitmq.client.AMQP.BasicProperties;importjava.util.UUID;publicclassRPCClient{privateConnectionconnection;privateChannelchannel;privateStringrequestQueueName="rpc_queue";privateStringreplyQueueName;privateQueueingConsumerconsumer;publicRPCClient()throwsException{ConnectionFactoryfactory=newConnectionFactory();factory.setHost("192.168.100.17"); //RabbitMQ 服务地址factory.setPassword("admin");factory.setUsername("admin");factory.setPort(5677);connection=factory.newConnection();channel=connection.createChannel();replyQueueName=channel.queueDeclare().getQueue();consumer=newQueueingConsumer(channel);channel.basicConsume(replyQueueName,true,consumer);}publicStringcall(Stringmessage)throwsException{Stringresponse=null;StringcorrId=UUID.randomUUID().toString();BasicPropertiesprops=newBasicProperties.Builder().correlationId(corrId).replyTo(replyQueueName).build();channel.basicPublish("",requestQueueName,props,message.getBytes("UTF-8"));while(true){QueueingConsumer.Deliverydelivery=consumer.nextDelivery();if(delivery.getProperties().getCorrelationId().equals(corrId)){response=newString(delivery.getBody(),"UTF-8");break;}}returnresponse;}publicvoidclose()throwsException{connection.close();}publicstaticvoidmain(String[]argv){RPCClientfibonacciRpc=null;Stringresponse=null;try{fibonacciRpc=newRPCClient();System.out.println("[x]Requestingfib(30)");response=fibonacciRpc.call("30");System.out.println("[.]Got'"+response+"'");}catch(Exceptione){e.printStackTrace();}finally{if(fibonacciRpc!=null){try{fibonacciRpc.close();}catch(Exceptionignore){}}}}}

© 2025 智德知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com