Netty应用第一篇:什么是netty?为什么用netty?

目录

本文须知

什么是netty?

异步的概念

事件驱动

为什么要使用netty?

Netty的特性


本文须知

        本文内容来自于B站孙帅suns的netty应用视频,由本人根据视频学习整理而成。然而,由于个人理解和整理的差异,可能存在部分地方的误差或讲解不够明确的情况。

        为了获得更详细的课程内容和准确的解释,请您移步至B站,搜索孙帅suns获取详细课程视频内容,以便深入了解和学习。孙帅suns的视频将为您提供更全面、详细的知识和解释,帮助您更好地理解netty应用的相关内容。

        在阅读本文时,请注意本文的目的是为了提供一个概述和个人整理的观点,而不是取代原始视频课程的内容。如有任何疑问或不明之处,建议您参考原始视频课程以获取更准确的信息。

        感谢您的理解和支持!

        在此附上B站孙帅suns个人主页链接:孙帅suns个人主页

什么是netty?

Netty官网上的介绍是:

   Netty是一个NIO客户服务器框架,它能够快速和容易的开发网络应用,如协议服务器和客户端。他大大的简化和精简了网络编程,如TCP和UDP套接字服务器。

        “快速和简单”并不意味着开发出来的程序会出现可维护性或性能问题。Netty的设计是经过精心设计的,其经验来自于许多协议的实施,如FTP、SMTP、HTTP以及各种基于二进制和文本的遗留协议。因此,Netty成功的找到了一种方法来实现开发的简易性、性能、稳定性、灵活性,而没有任何妥协。

        实际上Netty是一个异步事件驱动的网络应用框架。用于快速开发可维护性的高性能协议服务器和客户端。

        记住这里的两个名词异步事件驱动

异步的概念

        异步:异步是指在进行网络通信时,不需要等待一个操作的完成才能继续执行其他操作。即允许在一个操作执行的同时执行其他操作,而不会阻塞当前线程或进程。

        异步编程的主要优势包括提高系统的并发性、响应性和性能,因为它允许程序在等待某些操作完成时执行其他有用的工作。

        拿和朋友联系来对异步和同步举个例子:

  • 同步通信:假如我和我朋友是打电话联系的,那么在这个通话阶段,我俩必须时刻聆听和回应对方,否则就会出现沟通问题,这就是同步通信,因为通信的两端必须同步工作,一方的行动取决于另一方的行动。
  • 异步通信:假如我和我朋友是通过文字聊天来联系的,那么在这个联系过程中,我不需要朋友即时对我的消息进行回复,我也不用时刻秒回对方的消息。相反,在这个过程当中,我们还可以去做其他事情,比如学习Netty,等到方便的时候再回复对方的消息。我们之间的通信是异步的,我们的行动是相互独立的。

事件驱动

        事件驱动是指应用程序的执行流程是由事件触发和处理的,而不是线性的顺序执行。

        在Netty中,事件可以是各种网络事件,例如新连接、数据到达、连接断开等。当这些事件发生时,Netty会触发相应的事件处理器来处理它们。

        事件处理器是一段代码或逻辑,用于响应特定类型的事件。在Netty中,你可以编写自定义的事件处理器来处理各种事件。事件处理器负责执行与事件相关的操作,例如接收和发送数据、处理协议逻辑、加密/解密等。事件处理器通常实现了特定的接口或继承了Netty提供的基类,以便与Netty的事件模型集成。

为什么要使用netty?

        首先,Netty已经是行业内网络通信的编程的标准,广泛用于通信领域和很多其他的中间件技术的底层。

        其次Netty应用十分广泛,游戏行业基本上都在使用Netty,而像一些框架(比如:Spring WebFlux、Storm、RocketMQ、Dubbo)通信底层,也是通过Netty来解决进程之间的通信问题。它是分布式系统通信的核心。

Netty的特性

        高性能和可伸缩性: Netty采用了异步、非阻塞的IO模型,允许在一个线程上处理多个并发连接。这使得它能够轻松应对大规模的并发请求,提供卓越的性能和可伸缩性。这对于需要高吞吐量的网络应用程序(如服务器、代理等)非常重要。

        多协议支持: Netty支持多种网络协议,包括HTTP、WebSocket、TCP、UDP等。这使得它非常适合开发各种类型的网络应用,从Web服务到实时通信应用都可以使用Netty来构建。

        异步和事件驱动: Netty采用事件驱动和异步模型,允许开发者编写响应式的代码,以处理各种网络事件,如连接建立、数据到达、异常等。这样的设计使得编写高度并发和高性能的代码更加容易。

        安全性: Netty提供了对SSL/TLS的支持,可以加密和保护网络通信,确保数据的安全性。这对于处理敏感数据或需要安全通信的应用程序至关重要。

        易于使用和可维护: Netty提供了清晰的API和文档,使得开发者能够迅速上手并构建复杂的网络应用。同时,它也有一个活跃的社区,不断更新和维护,确保了其在不断发展的网络环境中的稳定性和可靠性。

        扩展性: Netty具有灵活的插件机制,允许开发者扩展和定制其功能,以满足特定需求。你可以添加自定义的处理器来处理各种网络事件。

        跨平台: Netty是一个Java框架,因此具有跨平台性。你可以在不同操作系统上运行Netty应用程序,而无需担心平台兼容性问题。

        应用广泛: Netty已经被广泛应用于众多互联网公司的产品和项目中,包括一些知名的开源项目和框架。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ikwil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值