netty 快速开发基于tcp udp等协议开发,就是快速的socket开发,而且是NIO的
补充:TCP,UDP,HTTP协议
他们都属于网络块的TCP/IP协议,TCP,UDP属于传输层,一个是连接的,要经过三次握手,一个是非连接的,一个相对于安全,但是速度较慢,TCP--java socket ,UDP--datagramsocket,TCP :HTTP FTP SOAP,TENLENT ,UDP :DNS
HTTP:属于应用层。依赖于浏览器,主要的对象是HttpRequest和HttpResponse Api可以通过URI 和appache的 HTTPClient进行调用,selvet3.0以后 可以通过setHttpOnly保证cookie的安全,HTTP调用流程,解析地址,域名和端口,域名通过dns服务器解析到具体的ip,在根据具体的请求映射到服务器,服务器容器初始化sevelt,调用deget或者dopost ,response给浏览器,浏览器下载相应的js,css对页面进行渲染。respons 有gizp方式对文件进行压缩缩小渲染时间。
创建两个事件组 NioEventLoopGoop 一个是boss,一个是work
boss 负责accept,服务端的管理 work负责对进来的线程进行逻辑处理
服务端
整个过程相当于坐公交车
EventLoopGroup是公交车
公交车会有很多售票员(暂且这么定)EventLoop
售票员工作是登记selector 每个进来的乘客 channel 到哪一站,
到站了提醒他下车 ,登记的乘客下车的整个事件集合成piple,
每个提醒的时间交个channelhandler处理。
整个过程通过一个引导器ServerBootStrap进行初始化,相当于构造这模式
客户端与服务端相似
通过一个引导器初始化一个chanel, handler
设计模式Rector 相当于观察者模式,里面嵌套一个selector 相当于注册
DUBBO 通讯实现思想与上面类型,通过InVoke,实现customer和provider之间的互调
SpringMVC
核心是dispacherselvert,继续servlet,就是一个servelt,通过上下文,产生默认的bean:
controler,视图解析bean,handlermapping,handlerAdaptor
流程,请求--》通过handlerMapping,handlerAdaptor找到相应的handler,进行逻辑处理,产生逻辑model,通过视图解析,产生ModeAndView,渲染给response
<content :command-scan 可以扫描@Server @controler自动产生bean
网友评论