打造自己的通信框架一——引言
2020-08-26 本文已影响0人
alonwang
前言
工作以来,一直在别人搭好的框架下做业务开发,翻过框架源码大致明白实现原理,但是仅仅做到这样,很难去理解作者设计时的思量,也容易忽视一些技术细节,因此萌生了开发一套自己的框架的想法,这不是重复造轮子,只是为了把自己放到更高的角度去看问题,在设计的过程中带动深度思考。第一个项目,我准备开发一套通信框架,并写下一系列文章记录自己在设计过程中的思考,取舍。项目地址
)
正文
目标
一套基于Netty的,简单的MVC通信架构
-
支持WebSocket协议
-
自定义协议包格式
-
客户端请求异步串行无锁化
- RPC支持(未来)
依赖和工具
-
JDK13
自己的项目,暂不考虑用到实际生产中,开发过程中会尽量多用新特性
-
Gradle
构建工具,Gradle的自定义脚本的能力比较方便,我的计划中有有一个地方会用到,且Gradle脚本支持Groovy,可以借此学习下这个语言
-
Netty
超级优秀的通信基础框架。
-
Protobuf
可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式
-
Groovy+Spock
测试框架,写起来比较简洁
-
hu-tool
工具集,有很多好用的工具
-
Spring Boot
依赖管理,日志,监控等等。
-
lombok
省去get、set、constructor等等
-
IDEA
无敌IDE
功能优先级
按照以下顺序开发
- 自定义与客户端交互的协议格式
- Request,Response封装
- NettyServer搭建
- 异步串行无锁化
后记
大约一周前,我就已经开始编写这套框架了,但是写了几天之后发现这样不太对,开发流程不对,经常写着写着发现这里不对那里不对,而且很多思考都被慢慢遗忘,反思了一下,决定结合文章去复盘整个设计过程。 共勉。