# rpc-start **Repository Path**: lxrv587/rpc-start ## Basic Information - **Project Name**: rpc-start - **Description**: rpc框架实现与学习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-12-06 - **Last Updated**: 2021-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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 负载均衡算法

## 服务注册端 serverPort:默认开启tcp端口; class: 提供服务的接口类(可写接口或者实现类) 并且在 com.it.netty.rpc.service.PersonServiceImpl类上加上注解@RpcService zkAddress: zookeeper地址; timeout:默认请求超时时间为5000毫秒,可设置2000-5000范围内; max-flow:最大并发量

## 服务消费端 loadBanlance:负载均衡算法默认随机random,支持轮询roundRobin,定向ip访问 ip。(默认一台主机时不走负载均衡) interface:代理接口全限定名; zkAddress: zookeeper地址; proxy:动态代理模式 目前支持jdk,cglib 默认jdk; clientGroup-thread-nums:客户端event线程数; protocol:序列化,目前支持 jdk,jakson,hessian,默认hessian;

## 交流750484746