Netty
文章平均质量分 91
Netty
蛋炒喜红柿
这个作者很懒,什么都没留下…
展开
-
【9. Netty Reactor模型之主从多线程模型】
1. 前言通过上节的分析,我们知道单Reactor多线程模型它的性能瓶颈在于单个Reactor,本节主要讲解如何优化单个Reactor带来的性能瓶颈问题。2.单个Reactor性能瓶颈单 Reactor 主要存在的性能瓶颈如下:压力问题:客户端数量比较多的情况,单个 Reactor 负责监听和转发,那么 Reactor 压力非常的大; 单点故障问题:如果 Reactor 发生故障,则即使后面的 Handler 和 Worker 正常工作,但是整个应用程序无法正常对外提供服务。3.如何..原创 2022-03-15 11:15:06 · 931 阅读 · 1 评论 -
【8. Netty Reactor模型之多线程模型】
1. 前言回顾上节,我们了解了什么是传统堵塞 I/O 模型,什么是单 Reactor 单线程模型,以及它们的缺点,本节内容主要是针对单 Reactor 单线程模型的缺点进行升级,让它的性能得到进一步的提高。2. 如何进行优化首先,我们思考一下单 Reactor 单线程的性能瓶颈在哪里?主要有以下两个方面的性能上的缺点: 整个流程处理都是单线程,包括:监听客户端连接、分发客户端请求、处理客户端请求及响应,整个流程非常的复杂和耗时,只有一个线程的话,如果客户端数量比较多,那么将处理不过原创 2022-03-15 11:14:34 · 763 阅读 · 0 评论 -
【7. Netty Reactor模型之单线程模型】
1. 前言不同的线程模式,对于程序的性能差别是很大的,目前存在的线程模式主要有两种,分别是传统堵塞 I/O 服务模型和 Reactor 模型。其中又根据 Reactor 的数量和处理资源池线程的数量不同具体分为以下几种模型,具体如下: 单 Reactor 单线程; 单 Reactor 多线程; 主从 Reactor 多线程。 本节内容,主要讲解传统堵塞 I/O 模型和单 Reactor 单线程模型的核心原理。2. 学习目的学习 Reactor 模型的好处在于可以知道原创 2022-03-15 11:13:40 · 422 阅读 · 0 评论 -
【6. Netty的核心组件】
1. 前言本节我们主要从整体上了解 Netty 有哪些核心组件,很多同学学习完 Netty 虽然会使用,但是只知道如何自定义 Handler 而已,根本不清楚 Netty 有哪些核心的组件。本节的主要目的是,从整体上概括 Netty 的核心组件,有助于深入了解 Netty 以及关于 Netty 的面试。2. 核心组件Netty 的核心模块组件主要分为以下:组件模块 说明 Boostrap Bootstrap 其实就是启动的意思,主要用来配置 Netty 的相关配置,串联各原创 2022-03-29 15:48:15 · 296 阅读 · 0 评论 -
【5. Netty ChannelFuture 异步监听】
1. 前言本节主要讲解 ChannelFuture ,它的作用是用来保存 Channel 异步操作的结果,可以看作是一个异步操作结果的占位符。2. 概念在 Netty 中所有的 IO 操作都是异步的,不能立刻得到 IO 操作的执行结果,但是可以通过注册一个监听器来监听其执行结果。在 Java 的并发编程当中可以通过 Future 来进行异步结果的监听,但是在 Netty 当中是通过 ChannelFuture 来实现异步结果的监听。通过注册一个监听的方式进行监听,当操作执行成功或者失败时监听会自原创 2022-03-29 15:47:04 · 4401 阅读 · 0 评论 -
【4. Netty ServerBootstrap 服务端启动类】
1. 前言本节主要讲解服务端主启动类 ServerBootstrap 的核心 API 的使用。2. ServerBootstrap 流程ServerBootstrap 的用法基本上都是固定的,一般对于新接触 Netty 的同学来说,会觉得这些模板代码比较多,难以理解。我们主要记住几个核心配置即可。指定线程模型:通过.group(bossGroup, workerGroup)给引导类配置两大线程组,这个引导类的线程模型也就定型了。其中 bossGroup 表示监听端口,accept 新连接..原创 2022-03-18 09:45:14 · 581 阅读 · 0 评论 -
【3. Netty Bootstrap客户端启动类】
1.前言上一节,我们主要讲解了一个Netty入门案例,其中无论是客户端还是服务端的代码编写,都是分为 2 个核心步骤,分别是:启动类模板代码 + 自定义业务 Handler,其中 Handler 可以根据不同的业务定义多个。本节主要介绍 Bootstrap 客户端启动类的代码含义。2. Bootstrap流程客户端启动类的写法都是固定模板的写法,需要掌握几个核心的流程,有助于理解模板代码,具体如下:指定线程模型:通过.group(group)给引导类(Bootstrap)配置线程组,..原创 2022-03-18 09:44:36 · 929 阅读 · 0 评论 -
【2. Netty的入门案例】
1. 前言本节主要是使用 Netty 来开发服务端和客户端,Netty 的开发模式基本上都是主启动类 + 自定义业务 Handler,Netty 是基于责任链的模式来管理自定义部分的 Handler,本节带大家感受一下 Netty 的开发。需求: 本节主要通过 Netty 来实现我们的第一个 Demo,主要功能是分别建立两个项目(客户端和服务端),客户端向服务端发送 Hello World,服务端接受到数据之后打印到控制台,并且给客户端响应。2. 环境搭建第一步: 使用 Maven 构建工程原创 2022-03-16 09:33:25 · 651 阅读 · 0 评论 -
【1. Netty简介】
1. 什么是NettyNetty是由JBOSS提供的一个Java开源通讯框架,用以快速开发高性能,高可靠的网络IO程序。它底层很好的封装了Socket,处理网络通讯的一个开源通讯框架。通俗的说,Netty就是解决两个系统之间互相通信的一个框架。在Java领域Netty被广泛的应用,Tomcat,Dubbo,RocketMQ,Zookeeper,ElasticSearch等等这些中间件的网络通讯框架都是Netty实现的。其中Netty只是对Java原生的通讯框架进行了高度的封装,如下图所示:原创 2022-03-15 11:23:06 · 979 阅读 · 0 评论
分享