From 911039cc79d3dad085f33c218fbd9fa9d129fe53 Mon Sep 17 00:00:00 2001 From: jaysunxiao Date: Thu, 14 Oct 2021 10:36:35 +0800 Subject: [PATCH] =?UTF-8?q?ref[net]:=20=E9=87=8D=E6=9E=84net=EF=BC=8C?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E5=8C=85=E5=90=8D=E7=B1=BB=E5=90=8D?= =?UTF-8?q?=EF=BC=8C=E5=9F=BA=E6=9C=AC=E9=80=BB=E8=BE=91=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/FAQ.md | 20 +++++++++++++------- net/README.md | 12 ++++++++---- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/doc/FAQ.md b/doc/FAQ.md index 6468d19c..f0694034 100644 --- a/doc/FAQ.md +++ b/doc/FAQ.md @@ -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的容易扩展,可以轻易跨平台 \ No newline at end of file diff --git a/net/README.md b/net/README.md index ae097eb8..3be1b4f3 100644 --- a/net/README.md +++ b/net/README.md @@ -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,任务线程池,任务的分发 ``` #### 诞生背景