本文主要介绍如何使用spring 集成RabbitMQ 实现RPC 调用。
前期准备工作(包括相关工具或所使用的原料等)笔记本,jdk ,EclispeRabbitMQ 服务器 详细的操作方法或具体步骤
使用开发工具Eclipse 创建RPC客户端项目。
组织结构如下图:

接口声明:
RpcSpringTest .java
package com.cn.trap.test;
public interface RpcSpringTest {
public void sayHi(String name);
}
客户端配置文件:applicationContext.xml
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip-2.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.3.xsd">
queue="queue.rpc.dp" exchange="dp-mq-exchange" reply-timeout="30000" />
p:serviceInterface="com.gloryscience.inms.trap.test.RpcSpringTest" p:routingKey="queue.rpc.dp"> roperty name="amqpTemplate" ref="rpcTemplate" />
客户端启动类测试类:
package com.cn.trap.main;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.cn.trap.test.RpcSpringTest;
public class Application {
private static volatile ApplicationContext ctx;
public static void main(String[] args) {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("服务已启动---");
RpcSpringTest service = ctx.getBean(RpcSpringTest.class);
service.sayHi("name");
}
}
使用开发工具创建RPC服务端项目,项目截图如下:

服务端RPC接口声明和实现类:
RpcSpringTest.java
package com.cn.trap.test.rpc;
public interface RpcSpringTest {
public void sayHi(String name);
}
RpcSpringTestImpl.java
package com.cn.trap.test.rpc;
public class RpcSpringTestImpl implements RpcSpringTest {
@Override
public void sayHi(String name) {
System.out.println("请求收到---"+name);
}
}
服务端项目spring配置:applicationContext.xml
xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:task="http://www.springframework.org/schema/task" xmlns:rabbit="http://www.springframework.org/schema/rabbit" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip-2.0.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit-1.3.xsd"> password="${rabbitmq.password}" />
connection-factory="rabbitConnectionFactory">
max-concurrency="128" prefetch="10">
roperty name="serviceInterface" value="com.gloryscience.inms.trap.test.rpc.RpcSpringTest" />
roperty name="service" ref="serviceImpl" />
roperty name="amqpTemplate" ref="amqpTemplateInternetProxy" />
服务端服务启动类:
public class Application {
private static volatile ApplicationContext ctx;
public static void main(String[] args) {
ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
}
}
注意事项在调用之前需将服务端项目RPC服务启动。spring配置文件中有相关RabbitMQ配置参数,如IP地址,端口号,用户名,密码,根据自己服务的地址进行相关修改。RabbitMQ 实现RPC调用时会创建临时队列,效率上可能不如固定队列。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
