snrpc 介绍
snrpc 是一个简单的 Netty RPC 框架,使用 protostuff 1.07
作为序列化工具,使用 Netty-3.2.1 作为 NIO。
使用方式:
比如:
1. server class;
interface and implementor // define an interface: public interface SnRpcInterface { public String getMessage(String param); } // implement interface public class SnRpcImpl implements SnRpcInterface { public String getMessage(String param) { return "hi,it is message from server...param+" + param; } }
2, start server
SnRpcInterface inter = new SnRpcImpl(); SnRpcServer server = new SnNettyRpcServer(new Object[] { inter }); try { server.start(); } catch (Throwable e) { e.printstacktrace(); }
3,config file
snrpcserver.properties
#tcpNoDelay snrpc.tcp.nodelay=true #call the bind method as many times as you want snrpc.tcp.reuseAddress=true #ISDEBUG snrpc.dev=true #TCP timeout snrpc.read.timeout=25000 #server port snrpc.http.port=8080
config.xml
<?xml version="1.0" encoding="UTF-8"?><application> <!-- rpc interface services --> <rpcServices> <rpcService name="SnRpcInterface" interface="org.stefan.snrpc.server.SnRpcInterface" overload="true"> <rpcImplementor class="org.stefan.snrpc.server.SnRpcImpl"/> </rpcService> </rpcServices></application>
4, client invoker
SnRpcConnectionFactory factory = new SnNettyRpcConnectionFactory( "localhost", 8080); factory = new PoolableRpcConnectionFactory(factory); SnRpcclient client = new CommonSnRpcclient(factory); try { SnRpcInterface clazz = client.proxy(SnRpcInterface.class); String message = clazz.getMessage("come on"); System.out.println("client receive message .... : " + message); } catch (Throwable e) { e.printstacktrace(); }
要求
-
JDK6+
-
Maven 2
依赖
-
reflectasm-1.07.jar
-
asm-4.0.jar
-
log4j-1.2.16.jar
-
dom4j-1.6.1.jar
-
xml-apis-1.0.b2.jar
-
slf4j-api-1.6.6.jar
-
netty-3.2.1.Final.jar
-
jaxen-1.1.6.jar
-
protostuff-core-1.0.7.jar
-
protostuff-api-1.0.7.jar
-
protostuff-runtime-1.0.7.jar
-
protostuff-collectionschema-1.0.7.jar
-
commons-pool-1.6.jar
snrpc 官网
https://github.com/stefzhlg/snrpc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。