自定义基于netty的rpc框架(1)
来源:互联网 发布:windows 下载 编辑:程序博客网 时间:2024/04/29 22:01
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>
0 0
- 自定义基于netty的rpc框架(1)
- 基于netty的rpc框架
- 自定义基于netty的rpc框架(2)---服务端的实现
- 自定义基于netty的rpc框架(3)---客户端的实现
- 自定义基于netty的rpc框架(4)---zk和utils以及protocol的实现
- 基于Netty的分布式 RPC 框架
- 基于Netty的RPC简单框架实现(四):Netty实现网络传输
- 基于Netty的RPC简单框架实现(一):RPC客户端
- 基于Netty的RPC简单框架实现(二):RPC服务端
- 基于Netty的高性能JAVA的RPC框架
- 基于hessian和netty的RPC框架设计和实现
- 基于hessian和netty的RPC框架设计和实现
- 基于Netty的RPC简单框架实现(三):Kryo实现序列化
- 基于Netty的RPC简单框架实现(五):功能测试与性能测试
- 基于Netty和Zookeeper实现RPC框架
- Netty框架和RPC框架的关系
- netty实现高性能的rpc框架
- 基于Netty的RPC架构笔记7之自定义序列化协议
- gcc
- 淘宝复制别人店宝贝相关问题
- docker(13):alpinelinux安装jenkins
- Ubuntu开机自动挂载磁盘分区
- maven命令行创建两个web模块化项目
- 自定义基于netty的rpc框架(1)
- [LeetCode]61. Rotate List
- Swift 中----字符串和字符
- 浅谈Java中的equals和==
- linux下安装pip
- 老数据库乱码禁止升级数据库编码,却要用乱码数据作为操作条件
- 揭秘微信红包:架构、抢红包算法、高并发和降级方案
- 【软工学习笔记】【structs2开发】服务器开启自启动
- redis key键(五)