使用 spring-rabbit 实现 同步调用的效果

阅读更多

         虽然大部分情况使用mq是要实现一些异步的效果,但是有的时候有的需求缺需要使用mq来实现同步的效果,项目中使用的是rabbitMq,这里说下怎么用rabbitMq实现同步的效果。

        第一步:引入jar包

 


	org.springframework.amqp
	spring-rabbit
	1.6.5.RELEASE

        第二步:客户端的配置配置

 

 





		
	



		
	

            第三步:代码编写(部分客户端代码)

 

MessageProperties messageProperties = new MessageProperties();
            messageProperties.setDeliveryMode(MessageDeliveryMode.PERSISTENT);
            messageProperties.setExpiration(String.valueOf(30 * 1000));
//          correlationIdString 是自动生成的,所以客户端代码不需要做处理,服务端代码需要拿请求后,取出correlationIdString,然后通过messageProperties.setHeader("correlationIdString", correlationIdString);传回给客户端  
//	    String correlationIdString = "";
//	    messageProperties.setHeader("correlationIdString", correlationIdString);
			

	    String json = new Gson().toJson(params);
            Message message = new Message(json.getBytes(), messageProperties);
            Message resMessage = amqpTemplate.sendAndReceive(exchange, routingKey, message);
			return isSuccess(resMessage);

             通过这样的设置以及代码,客户端就能通过设置好的队列去取响应,根据设置好的correlation-key的值去关联请求响应,将相应同步反馈给对应的客户端

 

 

你可能感兴趣的:(rabbit,rabbitMq,amqp,同步)