1 Star 1 Fork 0

护国神将-小将 / rpc-start

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#此项目适合用来学习rpc框架原理以及实现

MyRPC

主要使用技术以及后期开发功能简介:
1、rpc远程调用使用netty作为通信框架,采用netty主从线程模型。 2、目前开发给予tcp协议长链接的rpc远程调用,支持同步/异步回调,超时时间,后期加入接口调用统计,权限。 3、序列化目前支持jdk,hessian,jakson序列化,后面准备支持protobuf,Marshalling等序列化技术。 4、使用zookeeper作为服务的注册与发现中心。实现服务的自动注册与发现,无限监听节点的变更,提供实时可靠的服务。 5、整合spring方便使用。集成spring容器,使用更加方便快捷。 6、目前代理默认使用jdk,支持Javassist,cglib等 7、支持轮询,随机,权重随机,一致性hash 负载均衡算法

服务注册端

<beans xmlns="http://www.springframework.org/schema/beans"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
xmlns:rpc="http://www.lxr.com/schema/rpc"  
xsi:schemaLocation="  
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
    http://www.lxr.com/schema/rpc 
    http://www.lxr.com/schema/rpc/rpc-1.0.0.xsd">  
	<bean id="perservice" class="*.*ServiceImpl"/>
	<rpc:server id="test" serverPort="8096" zkAddress="127.0.0.1:12181">
		<rpc:serviceRegeist class="*.*.*Service" timeout="5000" max-flow="2000"/>
	</rpc:server>
</beans>  
serverPort:默认开启tcp端口;
class:	提供服务的接口类(可写接口或者实现类)
		并且在 com.it.netty.rpc.service.PersonServiceImpl类上加上注解@RpcService
zkAddress: zookeeper地址;
timeout:默认请求超时时间为5000毫秒,可设置2000-5000范围内;
max-flow:最大并发量



服务消费端

<beans xmlns="http://www.springframework.org/schema/beans"  
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
	xmlns:rpc="http://www.lxr.com/schema/consume"  
	xsi:schemaLocation="  
	http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
	http://www.lxr.com/schema/consume 
	http://www.lxr.com/schema/consume/rpc-consume-1.0.0.xsd">  
	<rpc:serviceBind id="123"  zkAddress="127.0.0.1:12181" 
		proxy="cglib" clientGroup-thread-nums="50" protocol="HESSIAN" loadBanlance="random">
	    <rpc:serviceConsume name="*Service"interface="*.*Service"/>
	</rpc:serviceBind>
</beans>  
	loadBanlance:负载均衡算法默认随机random,支持轮询roundRobin,定向ip访问 ip。(默认一台主机时不走负载均衡)
	interface:代理接口全限定名;
	zkAddress: zookeeper地址;
	proxy:动态代理模式 目前支持jdk,cglib 默认jdk;
	clientGroup-thread-nums:客户端event线程数;
	protocol:序列化,目前支持 jdk,jakson,hessian,默认hessian;


## 交流750484746


空文件

简介

rpc框架实现与学习 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/lxrv587/rpc-start.git
git@gitee.com:lxrv587/rpc-start.git
lxrv587
rpc-start
rpc-start
master

搜索帮助

14c37bed 8189591 565d56ea 8189591