一、RPC服务开发
本节介绍如何开发一个RPC的服务
## 1.1 定义接口
package rpc.junit;
public interface HttpServiceDemo {
public String helloword(String name);
}
## 1.2 根据接口实现服务
在这一步,需要注意两点:一、必须实现某一个接口, 二、必须添加注解@HttpService 或 @TcpService, 同时需要说明用户实现的是哪一个接口
例如:@HttpService(HttpServiceDemo.class)
以下为示例代码:
package rpc.junit;
import rpc.common.annotation.HttpService;
@HttpService(HttpServiceDemo.class)
public class HttpServiceDemoImpl implements HttpServiceDemo{
@Override
public String helloword(String name) {
// TODO Auto-generated method stub
String result = "hello "+ name;
return result;
}
}
## 1.3 配置Spring的xml文件,用于启动服务
<!--服务注组件-->
<bean id="serviceRegistry" class="rpc.server.registry.ZkServiceRegistryImpl">
<constructor-arg name="registryAddress" value="127.0.0.1:2181"/>
</bean>
<!--服务启组件 -->
<bean id="rpcServer" class="rpc.server.ExtRpcServer">
<property name="serviceRegistry" ref="serviceRegistry" />
</bean>
<!--rpc服务-->
<bean id="httpDemo" class="rpc.junit.HttpServiceDemoImpl"/>
根据以上三步即可发布一个RPC服务
二、RPC客户端开发
## 2.1 引入服务端的接口
引入服务端提供的jar文件,该文件中需要包含服务端所实现的接口
## 2.2 开发代码
客户端通过rpc-client中的RpcProxy类创建一个rpc的代理类,用于实现rpc服务调用功能,这样就能像调用本地代码一样调用远程的rpc服务
package rpc.demo.client;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import rpc.client.proxy.RpcProxy;
import rpc.junit.HttpServiceDemo;
public class HttpClientDemo {
@Autowired
private RpcProxy proxy;
/**
* @param proxy the proxy to set
*/
public void setProxy(RpcProxy proxy) {
this.proxy = proxy;
}
public void testHttp() {
HttpServiceDemo httpDemo = this.proxy.create(HttpServiceDemo.class);
String result = httpDemo.helloword("HTTP");
System.out.println(result);
}
}
## 2.3 配置Spring的xml
<!--服务发现组件-->
<bean id="serviceDiscovery" class="rpc.client.discover.ZKServiceDiscovery">
<constructor-arg name="registryAddress" value="${com.techstar.zkservers}"/>
</bean>
<!--rpc服务代理-->
<bean id="proxy" class="rpc.client.proxy.RpcProxy">
<constructor-arg name="serviceDiscovery" ref="serviceDiscovery"/>
</bean>
以上三步及可完成rpc服务调用
相关推荐
Hadoop自己的Rpc框架使用Demo。可以在自己的项目中用Hadoop的Rpc框架了。
RPC是一种远程调用的通信协议,例如dubbo、thrift等,我们在互联网高并发应用开发时候都会使用到类似的服务。本专题主要通过三个章节实现一个rpc通信的基础功能,来学习RPC服务...- 手写RPC框架第三章《RPC中间件》
jsonrpc是一个基于Java的高性能开源RPC框架
详细讲解RPC
基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++ 的 RPC 框架.zip基于 C++...
使用socket/反射/序列化等技术实现了一个基本的远程调用框架,可参考博客http://blog.csdn.net/u013177446/article/details/66473066
基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-高性能RPC框架 nfs-rpc.zip 基于java的开发源码-...
高性能RPC框架 nfs-rpc.7z
基于netty的手写rpc框架。
java原生实现的RPC框架,使用技术:JDK动态代理、Socket通信(BIO方式)、反射、注解、Java序列化
基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现的Rpc框架.zip基于C++ module库 Protobuf Zookeeper 实现...
跟语言平台绑定的开源RPC框架主要有下面几种。Dubbo:国内最早开源的...Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言。 Tars:腾讯内部使用的RPC框架,于2017年对外开源,仅支持C++语言。 SpringC
Dubbo RPC框架原理解析和源码
基于dubbo实现的rpc框架RPC 框架指的是:可以让客户端直接调用服务端方法就像调用本地方法一样简单的框架,比如我前面介绍的 Dubbo、Motan、gRPC 这些.zip
dubbo是一个rpc框架,面向服务治理,是一款优秀的框架。
高性能RPC框架 nfs-rpc
Thrift RPC客户端的服务化框架代码,
c# rpc框架c# rpc框架c# rpc框架c# rpc框架c# rpc框架
可参考博客http://blog.csdn.net/u013177446/article/details/66473066 使用netty/反射/序列化反序列化等技术是一个一个简单的RPC框架
Java rpc框架简易版,类似dubbo分布式实现 (纯socket实现).zip