Netty开篇——基础介绍与准备(一)

I/O篇

  1. Netty的介绍
    1. Netty 是由JBOSS提供的一个Java开源框架在Github上
    2. Netty 是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。
    3. Netty 主要针对在TCP协议下面向客户端的高并发应用,或者Peer-to-Peer/P2P场景下的大量数据持续传输的应用。
    4. Netty是一个NIO框架,适用于服务器通讯相关场景
    5. 共四层
      • TCP/IP
      • java.io
      • Nio
      • Netty
  2. Netty的应用场景
    1. 互联网行业
      • 分布式系统各节点之间远程服务调用,Netty 作为异步高性能的通信框架,往往作为基础通信组件被这些 RPC 框架使用。
      • 典型应用:Dubbo默认使用Netty作为基础通信组件,用于实现各进程节点之间的内部通信
    2. 游戏行业
      • Netty提供了TCP/UDP和HTTP协议,方便定制和开发私有协议栈,账号登录服务器
      • 地图服务器之间可以通过Netty进行高性能的通信
    3. 大数据领域
      • Hadoop的高性能通信和序列化组件AVRo的RPC框架,默认采用 Netty进行跨界点通信
      • 它的Netty Service基于Netty框架二次封装实现。
    4. 其他开源项目
      • Akka、flink、spark等
  3. I/O模型基本说明
    1. 用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能
    2. Java 共支持3 种I/O模式
      • BIO: 同步并阻塞(传统阻塞)
      • NIO: 同步非阻塞
      • AIO: 异步非阻塞
  1. BIO、NIO、AIO 适用场景分析
    1. BIO适用于连接数目比较小且固定的架构,对服务器资源要求比较高,并发局限于应用中,JDK4以前的唯一选择,但程序简单易理解。
    2. NIO适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,弹幕系统,服务器间通讯等。编程比较复杂,JDK4开始支持。

AIO使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS/操作系统参与并发操作。编程比较复杂,JDK7开始支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaWeb+BS架构+SpringBoot+Vue“共享书角”图书借还管理系统系统的设计和实现

基于JavaWebBS架构SpringBootVue“共享书角”图书借还管理系统系统的设计和实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 第1章 概 述 5 1.1 开发背景及研究意义 5 1.2 国内外研究…

【SpringMVC快速使用】1.@RestController @RequestMapping 2.logback的使用

背景:为何从这个最简单的 例子写起呢? 那是因为我们的管理后台之类的都是别人写的,我也听说了大家说:只用Post请求就足够了,但是却发现,在浏览器中测试时,默认是GET请求,如果直接写…

微服务概述之微服务架构

前言 为了解决单体应用的缺点,工程师们想到将原来大的单体应用进行拆分,化整为零形成独立的应用,不过此时这些应用没有直观的入口,因此用传统应用的概念来定义就不太妥当。于是诞生了“服务”,通过服务来描述这种功能…

SQL-DML增删改

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误&am…

Mac 使用nvm use命令无法切换node版本

解决方案:先卸载使用brew安装的node( 具体操作请移步使用brew卸载node),再使用nvm use命令切换node版本。 问题复现:使用nvm use命令显示切换成功,但是实际版本还是原来的node版本,应该是与bre…

reduce求和方法

reduce求和方法,有两种语法: 语法1(不带初始值): let 结果 arr.reduce( ( 累加的和, 数组元素) > {return 累加的和 数组元素 }) 示例如下: let arr [3,5,7,9] let sum arr.reduce((total,curr)…

MySQL的事务隔离级别脏读、幻读、不可重复读

一、MySQL的事务隔离级别 1、读未提交:一个事务还没提交时,它做的变更就能被别的事务看到。(别人改数据的事务尚未提交,我在我的事务中也能读到。) 2、读提交:(Oracle、SQL Server默认&#x…

短剧时代即将来临?AI 自动生成剧本和多场景长视频

近年来随着扩散模型(diffusion models)的进步和发展,给定文本提示进行高质量视频生成技术有着显著的提升。这些技术方案大多针对已有的二维图像扩散模型进行拓展,将图像二维神经网络修正为视频三维神经网络,并基于扩散…

【C++】vector中的值的擦除

在使用c中的vector容器时需要对其中的某些元素进行擦除,本文就来介绍一下各种擦除的相应代码实现。 擦除vector中的前n个值 //擦除vector中的前n个值 infoVector.erase(infoVector.begin(), infoVector.begin() n); 擦除vector中的某个值(以下标指定…

怎么画业务流程图?掌握这几步就够了

怎么画业务流程图?业务流程图不仅仅是一个简单的图表,而是一个强大的工具,能够帮助企业更好地理解、优化和管理业务流程。而想要画出一个完整的业务流程图并不简单,下面就给大家介绍一下具体的绘制方法。 一、选择绘制工具 在绘制…

UNIX环境编程-进程纪要

进程章节 环境表关于system调用的安全问题终端和作业管控信号sigsuspend函数 守护进程编程规则多进程问题多线程问题IO种类进程通信终端 环境表 每个程序都有一张环境表。环境表是一个字符指针数组,其中每个指针都包含一个以null 结尾的环境变量字符串。全局变量en…

书客、明基、好视力护眼台灯大比拼,哪款更胜一筹?

在现代生活中,我们经常面对着各种电子屏幕,给眼睛造成了一定的压力,时间一长,会发现眼睛很疲劳。很多家长仔细观察,当孩子长时间处在不合适地灯光下玩耍、学习,会发现他们有揉眼的动作,这就是不…

汽车销售领域相关专业术语

引言 本文是笔者在从事汽车销售领域信息化建设过程,积累的一些专业术语注解,供诸位参考交流。 专业术语清单 4S店   汽车销售服务4S店;是由经销商投资建设,按照汽车生产厂家规定的标准建造,是一种集整车销售(Sale)、零配件(Sparepart)、售后服务(Service)、信息…

vivado ip manager cache

https://china.xilinx.com/video/hardware/configuring-managing-reusable-ip-vivado.html

07- OpenCV:模糊图像

目录 一、模糊原理 二、模糊的相关处理方法: 1、均值滤波(归一化盒子滤波) 2、高斯滤波(正态分布的形状) 3、中值模糊 4、双边模糊算法(美容软件) 5、相关代码: 6、几种模糊算法的比…

如何在 Ubuntu 20.04 上安装 Apache Kafka

前些天发现了一个人工智能学习网站,通俗易懂,风趣幽默,最重要的屌图甚多,忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 20.04 上安装 Apache Kafka 介绍 Apache Kafka是一种分布式消息代理,旨在处理大量实…

一体机旅游景区污水处理设备工艺说明

一体机旅游景区污水处理设备工艺说明 原水浓度:COD≤500mg/L,BOD≤300mg/L,NH3-N≤40mg/L,超过以上浓度需另行设计。 出水标准:COD≤60mg/L,BOD≤20mg/L,NH3-N≤15mg/L,出水要求如更…

常用Java代码-Java中的异常传播

在Java中,异常传播是一个重要的概念,它描述了异常如何在方法之间传播。当一个方法抛出一个异常时,调用该方法的代码必须处理该异常,否则程序将终止。如果调用该方法的代码也抛出了异常,那么这个异常会继续向上传播&…

问CHATawsec2怎么部署实例?

CHAT回复:在AWS EC2(Elastic Compute Cloud)上部署实例主要涉及以下步骤: 1. 登录AWS管理控制台:使用你的AWS账户登录AWS管理控制台。 2. 导航到EC2服务:在顶部菜单栏中,点击"服务"然…

android——rxjava的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、rxjava是什么?二、使用步骤 1.引入库2.读入数据总结 前言 本文介绍项目开发中使用到rxjava的情形,以及详细的代码。 一、rxjava是什…