# PingPangRpcServer **Repository Path**: 0X00000000/PingPangRpcServer ## Basic Information - **Project Name**: PingPangRpcServer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2019-05-04 - **Last Updated**: 2021-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PingPangRpcServer #### 介绍 版本0.0.1 这是个JAVA RPC练习项目 #### 软件架构 1.1springboot、netty实现的一个RPC项目 1.2序列化传输数据支持:JSON、HESSIAN、PROTOSTUFF 1.3netty的心跳 1.4服务端注册到zookeeper 客户端采用 zkClient 1.5客户端到zookeeper查找服务端的地址 1.4,1.5 zookeeper交互在工具类里面 ![代码结构图](https://images.gitee.com/uploads/images/2019/1207/161551_5e276dcb_62082.png "QQ图片20191207161510.png") #### 拆包、粘包 1.没采用:协议头的四个字节int类型的为数据长度,接下来的数据长度为序列化的长度。 2.用的是:这里直接转换的类判断。 ``` if(RequestBean.class.isInstance(msg)) { request=(RequestBean)msg; }else { logger.info("非法请求..."); return; } ``` #### 使用 1.启动服务端 ``` @SpringBootApplication public class RpcProviderApplication { public static void main(String[] args) { SpringApplication.run(RpcProviderApplication.class, args); } } ``` 2.测试端直接调用 ``` public class TestClient { public static void main(String[] args) { //NettyClient nc=new NettyClient(); //NettyClientHandler nh=new NettyClientHandler(); //nh.setClient(nc); //RpcFactory f=new RpcFactory<>(); //f.setClient(nc); //RpcFactoryBeanrb=new RpcFactoryBean<>(Test.class,new RpcFactory<>()); //rb.setFactory(f); RpcFactoryBeanrb=new RpcFactoryBean<>(Test.class); Test t=rb.getRpc(); System.out.println("结果"+t.add(1, 2)); System.out.println("用户:"+t.findUserByName("张三", "123")); List list=t.findUserList(); for(UserInfo u:list) { System.out.println(u.toString()); } System.out.println("所有用户:"+list.size()); } } ``` #### 效果 ![服务端启动](https://images.gitee.com/uploads/images/2019/1207/162414_9f099ac0_62082.png "QQ图片20191207162201.png") ![客户端请求](https://images.gitee.com/uploads/images/2019/1207/162435_6a923569_62082.png "QQ图片20191207162352.png")