mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-05-25 15:59:50 +00:00
ref[net]: 重构net,重命名包名类名,基本逻辑不变
This commit is contained in:
+13
-7
@@ -1,11 +1,17 @@
|
||||
#### 为什么选择 Java 11 而不是 Java 8
|
||||
|
||||
```
|
||||
1. var可以减少非常多的代码,使代码更加简介
|
||||
2. Java 11的版本统一了api,Oracle JDK 和 Open JDK 可以无缝切换
|
||||
3. 11对容器支持友好,现在是容器的时代,反观 Java 8 的一些老版本都不支持容器
|
||||
4. Java 8过两年会停止维护,能早用就早用
|
||||
5. 主流的框架全部都已经支持Java 11
|
||||
```
|
||||
- var可以减少非常多的代码,使代码更加简介
|
||||
- Java 11的版本统一了api,Oracle JDK 和 Open JDK 可以无缝切换
|
||||
- 11对容器支持友好,现在是容器的时代,反观 Java 8 的一些老版本都不支持容器
|
||||
- Java 8过两年会停止维护,能早用就早用
|
||||
- 主流的框架全部都已经支持Java 11
|
||||
- 下个版本的spring boot直接最低版本要求Java 17
|
||||
|
||||
---
|
||||
|
||||
#### 为什么不选择基于interface(接口)的形式提供RPC,像dubbo那样的RPC
|
||||
|
||||
- 基于interface的不够灵活,不方便
|
||||
- 然interface写同步rpc比较方便,不适合异步的写法。现在流行异步调用链的写法,基于interface有点过时了
|
||||
- 并不是所有编程语言都有interface的,你用了interface的话其它编程语言就没法用了,就无法跨平台了
|
||||
- 基于packet的容易扩展,可以轻易跨平台
|
||||
+8
-4
@@ -6,19 +6,23 @@
|
||||
4. 服务可伸缩,负载均衡,集群监控,应有尽有。
|
||||
4. 基于Java11,所有的依赖包都是最新的jar包
|
||||
|
||||
#### 相关模块
|
||||
### Ⅱ. 相关模块
|
||||
|
||||
- net提供了两层api接口
|
||||
- IRouter为底层网络接口,直接通过Session连接发送消息
|
||||
- IConsumer为高层网络接口,是对IRouter的封装,消费者向服务提供者发送RPC消息
|
||||
|
||||
```
|
||||
变态的高性能,高可用性,高伸缩性(一般指增加机器),高扩展性(一般指代码层面的开闭原则)
|
||||
极致的高性能,高可用性,高伸缩性(一般指增加机器),高扩展性(一般指代码层面的开闭原则)
|
||||
|
||||
config,本地配置,zookeeper的注册发现,请求的负载均衡,都放在这个包下
|
||||
core,核心包,服务器,客户端的统一封装
|
||||
dispatcher,消息的分发
|
||||
router,消息的路由
|
||||
handler,netty的handler,定义了客户端,服务器的一些通用handler
|
||||
protocol,消息类的注册,消息的编解码,字节码增强等
|
||||
schema,spring的自定义标签的解析
|
||||
session,对netty的channel的封装
|
||||
task,通用任务线程池
|
||||
task,任务线程池,任务的分发
|
||||
```
|
||||
|
||||
#### 诞生背景
|
||||
|
||||
Reference in New Issue
Block a user