Netty核心技术一--Netty介绍和应用场景

news2024/11/29 20:59:15

1. 学习要求

要求已经掌握了

  • Java 编程, 主要技术构成: Java OOP 编程Java 多线程编程JavaIO 编程Java 网络编程、常用的Java 设计模式(比如观察者模式,命令模式,职责链模式 )、常用的数据结构(比如 链表)

2 Netty的介绍

  1. Netty 是由 JBOSS 提供的一个 Java 开源框架,现为Github上的独立项目。

  2. Netty 是一个异步的基于事件驱动网络应用框架用以快速开发高性能、高可靠性的网络 IO 程序。

    • 利用Ajax技术对异步进行理解

      左图为没有使用Ajax的B/S,右图为使用Ajax的B/S

      左图解析:客户通过浏览器访问服务器的流程是固定阻塞的,必须是1->2->3,浏览器想继续向下执行必须等待服务器的响应

      右图解析:客户通过浏览器访问服务器,浏览器想继续向下执行不用等待服务器的响应可以继续执行代码,等到服务器响应后再回调执行

      image-20230507114216604

  3. Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。

  4. Netty本质是一个NIO框架,适用于服务器通讯相关的多种应用场景

  5. 要透彻理解Netty , 需要先学习 NIO , 这样我们才能阅读Netty 的源码。

  6. Netty基础架构图:

    image-20230507115245939

3 Netty的应用场景

3.1 互联网行业

image-20230507115445556

  1. 互联网行业:在分布式系统中,各个 节点之间需要远程服务调用,高性能 的 RPC 框架必不可少,Netty 作为异步 高性能的通信框架,往往作为基础通 信组件被这些 RPC 框架使用。
  2. 典型的应用有:阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进 行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各 进程节点之间的内部通信

3.2 游戏行业

  1. 无论是手游服务端还是大型的网络游戏, Java 语言得到了越来越广泛的应用
  2. Netty 作为高性能的基础通信组件,提 供了 TCP/UDP 和 HTTP 协议栈,方便定 制和开发私有协议栈,账号登录服务器
  3. 地图服务器之间可以方便的通过 Netty 进行高性能的通信

3.3 大数据领域

image-20230507115826632

  1. 经典的 Hadoop 的高性能通信序列化组件 Avro 的 RPC 框架, 默认采用 Netty 进行跨界点通信
  2. 它的 Netty Service 基于 Netty 框 架二次封装实现。

3.4 其它开源项目使用到Netty

网址: https://netty.io/wiki/related-projects.html

image-20230507115954872

4. Netty的学习参考资料

左书为Netty核心贡献者编写

右书Netty原理部分梳理得很好但是是基于Natty5写的,但是Netty5官方占时停止维护了

image-20230507120050202

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

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

相关文章

C++: 计时器类的设计和实现

文章目录 1. 目的2. 功能列表3. 基础功能:获取耗时4. API 设计: Timer 类5. 单元测试6. API 实现 1. 目的 使用 C Class 的形式,封装原本 C语言的获取时间的函数,提供更容易使用的计时器调用。 使用 C03,原因是和先前的线程安全队…

ATT-ACK靶场渗透(一)

开启内网环境 kali攻击机ip为 192.168.88.156 主机发现、端口扫描 进行主机发现 nmap -sS 192.168.88.156/24 -Pn 192.168.88.1和192.168.88.2可能为网关之类的,不管 weblogic漏洞利用 192.168.88.182开放了80端口和7001(weblogic)端口…

超越预期:ConvNeXt技术催生YOLOv5目标检测巨变 ,实现超准确率

目录 引言一、ConvNeXt的介绍1、目标检测的重要性2、YOLOv5的介绍3、ConvNeXt原理和特点4、ConvNeXt结构 二、相关研究综述1、目标检测的基础原理和流程2、YOLOv5的特点与局限性3、ConvNeXt技术在目标检测中的应用现状 三、ConvNeXt在YOLOv5中的应用与改进1、安装PyTorch和torc…

阿里Java工程规约(来源阿里)

一、应用分层 1.开放接口层: 可直接封装 Service 接口暴露成 RPC 接口;通过 Web 封装成 http 接口;网关控制层等。 2.终端显示层: 各个端的模板渲染并执行显示层。当前主要是 velocity 渲染,JS 渲染,JSP 渲…

[golang gin框架] 33.Gin 商城项目- 微信支付操作相关功能讲解

一.微信支付准备工作 准备工作 申请条件: 个体工商户 、企业、政府及事业单位 PC网站接入支付官网,其他(app,小程序,公众号等)可参考 PC网站接入支付 需要获取内容 appid:应用 APPID(必须配置,开户邮件中可查看) MCHID&#xff1a…

Java Socket和ServerSocket 使用

在Java中,Socket和ServerSocket是用于创建网络连接的重要类。Socket类用于创建客户端套接字,而ServerSocket类用于创建服务器套接字。在本文中,我们将讨论Socket和ServerSocket的作用、使用方法以及相关代码示例。 Socket的作用 Socket是Jav…

【连续介质力学】张量的并矢和性质1

张量的代数操作 并矢 Dyadic 两个向量的张量积是一个并矢,得到一个二阶张量 u ⃗ v ⃗ u ⃗ ⨂ v ⃗ A \vec u \vec v \vec u \bigotimes \vec v A u v u ⨂v A 其中, ⨂ \bigotimes ⨂是张量乘积,任意张量可以表示成并矢的线性组合 …

戴尔 Dell XPS 13 7390电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板戴尔 Dell XPS 13 7390 处理器Intel Core i7-10510u已驱动 内存 16 GB ( 酷兽 DDR4 3200MHz 8GB x 2 )已驱动 硬盘三星 SSD 860 EVO 250GB (250 …

【iOS】--KVC与KVO

键值编码(KVC)与键值监听(KVO) KVC(Key Value Coding)允许以字符串的形式间接操作对象的属性。 简单的KVC 最基本的KVC由NSKeyValueCoding协议提供支持,最基本的操作属性的两个方法如下 set…

利用具有局部信息的引导自注意进行息肉分割

文章目录 Using Guided Self-Attention with Local Information for Polyp Segmentation摘要本文方法PP-Guided Self-AttentionLocal-to-Global Mechanism损失函数 实验结果 Using Guided Self-Attention with Local Information for Polyp Segmentation 摘要 背景 自动准确的…

Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能

随着互联网的不断发展,浏览器已经成为我们日常生活中必不可少的工具之一。作为一款现代化的浏览器,Microsoft Edge拥有许多强大的功能,为用户带来更加流畅的浏览体验。最近,Edge推出了分屏功能,这项功能可以大大提高生…

STM32------ADC

ADC 1、ADC介绍 1、1介绍 ADC即模数转换器。 例如:电信号转化成数字量。 1、2 ADC类型 并联比较型、逐次逼近型 并联比较型如下: 分压部分比较部分编码部分。 ADC分辨率:三位(上图) 优点:转换速度快…

类和对象下

文章目录 一、初始化列表1、语法:2、初始化顺序 二、static成员三、友元1、友元函数2、友元类 四、拷贝对象时的编译器优化例1、例2、例3、 一、初始化列表 1、语法: 初始化列表: 以一个冒号开始,接着是一个以逗号分隔的数据成员…

【Python PyTorch】零基础也能轻松掌握的学习路线与参考资料

文章目录 一、PyTorch的基础知识二、PyTorch数据处理三、PyTorch模型构建四、PyTorch模型训练和评估五、总结 作为当前最流行的深度学习框架之一,PyTorch已成为许多数据科学家和深度学习工程师的首选。本文将提供一条针对初学者的完整的学习路线,包括PyT…

hnust 湖南科技大学 2023 安卓 期中考试 复习资料

前言 ★:录音中提到的致谢:hwl,lqx,ly,sw重点来源:7-8班 PPT和录音内容来源:PPT知识点大多很抽象,需要联系实际代码来理解多做1-9章课后习题,编程题可以不做获取最新版本…

【AI大模型】“讯飞星火”大模型计划10月底赶超ChatGPT

文章目录 前言你使用过这种对话式AI吗?有什么看法或感受?“讯飞星火大模型将超越chatgpt?”这类型的人工智能对现在的社会有什么意义?这类型的人工智能,未来前景如何?申请体验写在最后 前言 5月6日&#xf…

第十三章 使用Postfix与Dovecot部署邮件系统

文章目录 第十三章 使用Postfix与Dovecot部署邮件系统一、电子邮件系统1、常见的邮件协议2、注意事项 二、部署电子邮件系统1、部署基础的电子邮件系统(1)、配置服务器主机名称(2)、配置服务器的DNS地址(3)…

【LeetCode: 115. 不同的子序列 | 暴力递归=>记忆化搜索=>动态规划 | 位置对应】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

队列Queue和栈Stack

什么是队列queue? 先进先出表,是一种受限制的线性表.其限制是仅允许在表的队尾进行插入数据和表的队头进行删除数据. 队列的使用场景: 线程池ThreadPoolExecutor ThreadPoolExecutor源码中核心变量(前面3个是重点) corePoolSize线程池维护的最小线程数量,哪怕是空闲的BlockQ…

Carla仿真三:Traffic Manager交通管理器详解

CARLA Traffic Manager 一、什么是Traffic Manager1、Traffic Manager简介2、Traffic Manager框架3、Traffic Manager模块 二、Traffic Manager控制方法1、TM控制交通参与者的自动驾驶的规则2、TM控制交通参与者行为的API摘要3、TM控制交通参与者行为的API 三、Traffic Manager…