一起写RPC框架(二)RPC之项目搭建
来源:互联网 发布:java怎么用 编辑:程序博客网 时间:2024/05/22 00:29
Maven的多模块项目搭建还是比较方便的,结构清晰,模块依赖明确,很适合用来作为开发RPC的开发架构,我们开发的RPC起一个名字,因为大学一直酷爱魔兽,喜欢魔兽解说xiaoy,他有一个别名叫做laopopo,所以我就没多想,就起了一个名字叫做laopopo-rpc,名字蹩脚了一点,不过不重要,明朝开国皇帝朱元璋真名叫朱重八,老爸叫做朱五四,他依旧做了皇帝,所以英雄不问姓名~ 虽然我写的也不是英雄,个人兴趣~
(项目截图)
(Github截图)
模块介绍:
laopopo-common: 存放一些比较公用的工具类,例如反射工具类,logger工具类,公用的Entity,自定义的异常
laopopo-remoting: 一个RPC框架,是离不开对网络的支持的,Laopopo是使用Netty4来支持网络数据传输的,protostuff做序列化工具,这个模块,用来完成网络模块的功能的
laopopo-registry:注册中心抽象模块,定义注册中心一些基本的功能,比如接收提供者的提供的服务信息,接收订阅者的某个服务订阅请求,且返回订阅结果等等,简而言之,这个模块主要用于定义注册中心的接口
laopopo-registry-default:注册中心基于内存的实现,因为注册中心的实现方式有很多种,基于java内存的,基于zookeeper的,基于consul的,所以才会有了laopopo-registry这个抽象模块,才会有了laopopo-registry-default这个基于java内存实现的默认模块,本系列目前只完成对java内存的实现
laopopo-client: 消费端和提供者端的所有逻辑代码在此模块实现,也就是说如果某个业务逻辑项目需要有RPC的功能的话,只需要maven引入此模块的依赖就可以了,当然此模块也会依赖common和remoting模块,因为这是基础模块嘛
laopopo-monitor: 顾名思义就知道这是监控模块,用来统计一些调用信息,做一些数据统计和反馈
laopopo-spring-support: 完成rpc对spring的基本支持
laopopo-console:提供一个web端的管理页面
好了,整个项目的每个模块的功能简单的说了一下,详细地具体的实现以后再分析,我们再分析一下依赖的maven jar包
<netty.version>4.1.0.Final</netty.version><slf4j.version>1.7.5</slf4j.version><protostuff.version>1.3.5</protostuff.version><objenesis.version>2.1</objenesis.version><bytebuddy.version>1.2.3</bytebuddy.version><cglib.version>3.1</cglib.version><spring-framework.version>4.3.0.RELEASE</spring-framework.version><metrics.version>3.1.2</metrics.version>
网络框架我们使用Netty,网络序列化工具使用protostuff,为了增强对调用对象的编织功能我们使用byteBuddy(后面我们一起学习,先了解说明一下),统计工具使用metrics,spring的版本我们使用4.3
整个项目的基本搭建就是如上说明的一样了
- 一起写RPC框架(二)RPC之项目搭建
- 一起写RPC框架(二十七)RPC 写在最后
- 一起写RPC框架(四)RPC网络模块的搭建二 Netty的编码器和译码器
- 一起写RPC框架(二十)RPC服务消费者二--服务消费者订阅服务
- 一起写RPC框架(三)RPC网络模块的搭建一 网络传输模型
- 一起写RPC框架(五)RPC网络模块的搭建三 序列化
- 一起写RPC框架(七)RPC网络模块的搭建五 Netty模块
- 一起写RPC框架(十)RPC服务提供端二--服务的编织和注册
- 一起写RPC框架(十五)RPC注册中心二--注册中心的基本实现
- 一起写RPC框架(二十一)RPC服务消费者三--服务消费者负载策略
- 一起写RPC框架(二十二)RPC服务消费者四--服务消费者服务编织
- 一起写RPC框架(二十三)RPC代码小总结
- 一起写RPC框架(二十四)RPC测试篇一---基本业务逻辑的测试
- 一起写RPC框架(二十六)RPC测试篇三---限流的测试
- 一起写RPC框架(二十七)RPC测试篇四---性能测试
- 一起写RPC框架(一)RPC之我所见
- 一起写RPC框架(一)RPC之我所见
- 一起写RPC框架(二十五)RPC测试篇二---服务消费者和服务提供者直连测试
- 【数学建模】数据包络分析法
- Ueditor指定用br做换行标签
- 关于Context []startup failed due to previous errors有效解决方式(1)
- BZOJ4614 [Wf2016]Oil
- 正确编写概要设计说明书
- 一起写RPC框架(二)RPC之项目搭建
- eetcode_c++:树:Lowest Common Ancestor of a Binary Tree(236)
- jQuery对表单表格的操作及更多应用
- Android底部弹框的两种实现(总结)
- Google Authenticator 服务器端实现
- SqlServer按中文数字排序
- HDU 1890 Robotic Sort(Splay 区间翻转)
- ios10应用调试
- CSS实现三级导航下拉菜单