当前位置: 首页 > news >正文

了解网站建设的基本流程怎样进行网络推广效果更好

了解网站建设的基本流程,怎样进行网络推广效果更好,wordpress段落间距调整,电子商务运营目录 为什么要学习nettynetty学习导图学习netty前需要知道的知识I/O模型主要I/O模型 netty框架的整体结构netty的逻辑架构网络通信层事件调度层服务编排层 为什么要学习netty Netty是由JBOSS提供的一个Java开源框架,现为Github上的独立项目。Netty本质是一个NIO框架…

目录

  • 为什么要学习netty
  • netty学习导图
  • 学习netty前需要知道的知识
    • I/O模型
      • 主要I/O模型
  • netty框架的整体结构
  • netty的逻辑架构
    • 网络通信层
    • 事件调度层
    • 服务编排层

为什么要学习netty

Netty是由JBOSS提供的一个Java开源框架,现为Github上的独立项目。Netty本质是一个NIO框架,通过异步、基于事件驱动的IO,用以快速开发高性能、高可靠性的网络IO程序,主要针对在TCP协议下,面向Client端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。

作为Java后端研发同学,一定都会接触到框架和网络通信,就我接触过并看过源码的开源项目,可以说基本上都是使用Netty作为网络通信的底层框架,如Dubbo、RocketMQ、Canal、otter、HBase等等。
————————————————
版权声明:本文为CSDN博主「西木风落」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenwiehuang/article/details/103937396

netty学习导图

在这里插入图片描述

学习netty前需要知道的知识

I/O模型

I/O请求分为两个阶段:

  • I/O调用阶段:用户进程向内核发起系统调用
  • I/O执行阶段:内核等待I/O请求处理完成并返回

如下图
在这里插入图片描述

主要I/O模型

  • 同步堵塞I/O (BIO)
    在这里插入图片描述

  • 同步非堵塞I/O (NIO)
    在这里插入图片描述

  • I/O多路复用

在这里插入图片描述

  • 信号驱动I/O
    在这里插入图片描述
  • 异步I/O
    在这里插入图片描述

netty的IO模型是基于非堵塞IO,底层实现依赖于JDK NIO的多路复用器Selector

事件处理器(Event Handler)

负责将读写事件分发给对应的读写事件处理器(Event Handler)

Reactor (使用同步IO)和 Proactor (异步IO),主流的事件模型主要使用Reactor 或Epoll

在这里插入图片描述

netty框架的整体结构

在这里插入图片描述
Core核心层
提供底层网络通信的通用抽象和实现,包括可扩展的事件模型、通用的通信API、支持零拷贝的 ByteBuf等

Protocol Support 协议支持层

  • 覆盖了主流协议的编解码实现如HTTP、SSL、Protobuf、压缩、大文件传输、WebSocket、文本、二进制等
  • 支持自定义应用层协议

Transport Service传输服务层

  • 传输服务层提供了网络传输能力的定义和实现方法支持Socket、HTTP隧道、虚拟机管道等传输方式
  • Netty的模块设计具备较高的通用性和可扩展性 支持自定义应用层协议

netty的逻辑架构

在这里插入图片描述

网络通信层

网络通信层的职责是执行网络I/O的操作,支持多种网络协议和I/О模型的连接操作,包括ServerBootstrap,Bootstrap,Channel组件

在这里插入图片描述

  • Bootstrap可用于连接远端服务器,只绑定一个EventLoopGroup (Boss),负责客户端的启动
  • ServerBootStrap 用于服务端启动绑定本地端口,绑定两个EventLoopGroup (Worker),负责服务端的启动

Bootstrap,ServerBootStrap是netty程序的入口

每个服务器中都会有一个Boss,会有一群做事情的 Worker
Boss 会不停地接收新的连接,将连接分配给一个个Worker处理连接
roup
√支持自定义应用层协议

Channel
Channel是网络通信的载体,提供了基本的API用于网络I/О操作
如register、bind、connect、read、write、flush等Netty自己实现的Channel是以JDKNIO Channel为基础的
在这里插入图片描述
Channel会有多种状态,如连接建立、连接注册、数据读写、
连接销毁等

Channel的状态

事件说明
channelRegisteredChannel创建后被注册到EventLoop 上
channelUnregisteredChannel创建后未注册或者从EventLoop取消注册
channelInactiveChannel处于非就绪状态
channelReadChannel可以从远端读取到数据

小结

BootStrap和ServerBootStrap 分别负责客户端和服务端的启动
Channel是网络通信的载体,提供了与底层Socket交互的能力

事件调度层

通过Reactor线程模型对各类事件进行聚合处理通过Selector主循环线程集成多种事件
核心组件包括EventLoopGroup、EventLoop

在这里插入图片描述
在这里插入图片描述
EventLoopGroup是Netty Reactor线程模型的具体实现方式
在这里插入图片描述

服务编排层

在这里插入图片描述

ChannelPipeline负责组装各种ChannelHandler实际数据的编解码以及加工处理操作由ChannelHandler完成

当I/O读写事件触发时,ChannelPipeline会
依次调用ChannelHandler列表对Channel的数据进行拦截和处理

每一个新的Channel会对应绑定一个新的ChannelPipeline(线程安全的);一个ChannelPipeline关联一个EventLoop一个EventLoop仅会绑定一个线程

ChannelPipeline入站和出站

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

channel和ChannelPipeline的关系
在这里插入图片描述

ChannelHandlerContext的作用

  • 保存ChannelHandler上下文
  • 实现ChannelHandler之间的交互,包含ChannelHandler生命周期的所有事件
    如connect、bind、read、flush、write、close等

组件之间的协作
在这里插入图片描述

小结

  • Bootstrap负责客户端或服务端的启动工作,包括创建、初始化Channel等
  • EventLoop负责向注册的Channel发起I/O读写操作
  • channelPipeline负责ChannelHandler的有序编排
http://www.yidumall.com/news/14175.html

相关文章:

  • 官网站超链接怎么做潍坊seo外包平台
  • 网站建制作查网站
  • 自己的网站怎么做砍价经典软文案例200字
  • 顺德网站建设域名玉林网站seo
  • 购物网站建设方案ppt泰安做百度推广的公司
  • 做网站什么配置够用网络营销软文范文
  • 推广网络怎么做网站关键词优化怎么做的
  • 西安手机网站定制网站建设国外搜索引擎
  • 泰州网站设计培训怀化seo推广
  • 网站建设小程序如何写软文赚钱
  • 做网站seo的公司百度seo优化规则
  • 北京做网站黑名单百度2022年版本下载
  • 中山市网站建设公司长春刚刚最新消息今天
  • 郑州网站建设哪家有网站推广的10种方法
  • 做电影网站什么后果东莞关键词seo
  • 济南网站建设公司搜索广告是什么意思
  • 做男女的那个视频网站软件培训机构
  • 徐州网站建设软文世界平台
  • 人力外包公司有哪些seo排名快速优化
  • 常州做网站yongjiaweb第三方平台推广引流
  • 委托 网站开发 进什么费用301313龙虎榜
  • 广州网站建设建航seo快排
  • 企业cms建站系统如何进行seo
  • 做电影网站还能赚钱上海app网络推广公司电话
  • 网站制作公司南宁游戏推广赚佣金
  • 中小型网站建设价位网站seo分析报告
  • 展示型型网站建设seo工具优化软件
  • 阳江有哪些建站公司网购网站十大排名
  • wordpress阿里云推送seo网站排名后退
  • 建站公司现状互联网推广方式有哪些