自定义基于netty的rpc框架(1)
2016-12-22 16:33
477 查看
1、简介
长话短说,首先来看下这个简单demo的架构图:demo用的是maven的聚合模式:
看下整体pom.xml的依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tj.cmcc.org</groupId> <artifactId>rpc.demo</artifactId> <version>1.0-SNAPSHOT</version> <!-- 导入了七个模块,把这七个模块聚合在一起 --> <!-- 聚合是模块的位置 --> <modules> <!-- 服务端框架的实现 --> <module>rpc-server-demo</module> <!-- 服务器端业务的实现 --> <module>rpc-server-impl-demo</module> <!-- 工具类 --> <module>rpc-utils-demo</module> <!-- zk,服务器端注册,客户端获取服务器地址,可以做业务上的负载均衡 --> <module>rpc-zk-demo</module> <!-- 服务器端和客户端共同制定的接口协议 --> <module>rpc-protocol-demo</module> <!-- 客户端框架的实现(反向代理等)--> <module>rpc-client-demo</module> <!-- 客户端业务的实现 --> <module>rpc-client-impl-demo</module> </modules> <packaging>pom</packaging> <dependencyManagement> <dependencies> <!-- ############################################### --> <!--rpc-server-demo--> <!-- SLF4J --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.12.RELEASE</version> </dependency> <!-- Apache Commons Collections --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.0</version> </dependency> <!-- CGLib --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency> <!-- ############################################### --> <!--rpc-server-impl-demo--> <!-- JUnit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!-- ############################################### --> <!--rpc-utils-demo--> <!-- SLF4J --> <!--<dependency>--> <!--<groupId>org.slf4j</groupId>--> <!--<artifactId>slf4j-log4j12</artifactId>--> <!--<version>1.7.7</version>--> <!--</dependency>--> <!-- Netty --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.24.Final</version> </dependency> <!-- Protostuff --> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-core</artifactId> <version>1.0.8</version> </dependency> <dependency> <groupId>com.dyuproject.protostuff</groupId> <artifactId>protostuff-runtime</artifactId> <version>1.0.8</version> </dependency> <!-- Objenesis --> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifactId> <version>2.1</version> </dependency> <!-- ############################################### --> <!--rpc-zk-demo--> <!-- SLF4J --> <!--<dependency>--> <!--<groupId>org.slf4j</groupId>--> <!--<artifactId>slf4j-log4j12</artifactId>--> <!--<version>1.7.7</version>--> <!--</dependency>--> <!-- ZooKeeper --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5</version> </dependency> <!-- ############################################### --> <!--rpc-protocol-demo--> <!-- ############################################### --> <!--rpc-client-demo--> <!-- SLF4J --> <!--<dependency>--> <!--<groupId>org.slf4j</groupId>--> <!--<artifactId>slf4j-log4j12</artifactId>--> <!--<version>1.7.7</version>--> <!--</dependency>--> <!-- Netty --> <!--<dependency>--> <!--<groupId>io.netty</groupId>--> <!--<artifactId>netty-all</artifactId>--> <!--<version>4.0.24.Final</version>--> <!--</dependency>--> <!-- RPC Common --> <!-- ############################################### --> <!--rpc-client-impl-demo--> <!-- JUnit --> <!--<dependency>--> <!--<groupId>junit</groupId>--> <!--<artifactId>junit</artifactId>--> <!--<version>4.11</version>--> <!--<scope>test</scope>--> <!--</dependency>--> <!-- Spring --> <!--<dependency>--> <!--<groupId>org.springframework</groupId>--> <!--<artifactId>spring-context</artifactId>--> <!--<version>3.2.12.RELEASE</version>--> <!--</dependency>--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.2.12.RELEASE</version> <scope>test</scope> </dependency> <!-- ************************************************* --> <!--需要被其他子模块引用的模块--> <dependency> <groupId>${project.groupId}</groupId> <artifactId>rpc-client</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>rpc-protocol</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>rpc-server</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>rpc-utils</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>rpc-zk</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement> <distributionManagement> <site> <id>website</id> <url>scp://webhost.company.com/www/website</url> </site> </distributionManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
相关文章推荐
- 自定义基于netty的rpc框架(3)---客户端的实现
- 自定义基于netty的rpc框架(4)---zk和utils以及protocol的实现
- 自定义基于netty的rpc框架(2)---服务端的实现
- 基于Netty的RPC架构笔记7之自定义序列化协议
- 基于Netty的分布式 RPC 框架
- 基于Netty构建高性能RPC通信框架
- 使用netty自定义rpc通信框架(提供测试用例和源码)
- 基于Netty的高性能JAVA的RPC框架
- 基于Netty的RPC简单框架实现(五):功能测试与性能测试
- 基于netty,hessian的RPC框架
- 基于Netty和Zookeeper实现RPC框架
- 基于Netty的RPC简单框架实现(二):RPC服务端
- 基于Netty的RPC架构笔记8之自定义数据包协议
- 造个轮子之基于 Netty 实现自己的 RPC 框架
- 基于Netty的RPC框架
- 从0开始写一个基于注解的轻量级分布式RPC框架(3)让Spring加载自定义注解
- 基于Netty的高性能JAVA的RPC框架
- 基于Netty的RPC简单框架实现(四):Netty实现网络传输
- summercool-hsf(基于Netty实现的RPC框架,已经应用国内某移动互联网公司)
- 基于hessian和netty的RPC框架设计和实现