Loading-正在加载, 请稍后

随笔分类 -  Netty知识

Netty知识学习分享
摘要:服务提供者 1.1 定义接口以及其实现 1.1.1 MyRPCTest public interface MyRPCTest { String hiHi(String p1); } 1.1.2 MyRPCTestImpl public class MyRPCTestImpl implements M 阅读全文
posted @ 2022-07-02 15:52 懵懵懂懂的猫 阅读(59) 评论(0) 推荐(0)
摘要:RPC介绍 RPC(RemoteProcedureCall)—远程过程调用,是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程 两个或多个应用程序都分布在不同的服务器上,它们之间的调用都像是本地方法调用一样 HTTP方式直接调用不叫R 阅读全文
posted @ 2022-07-01 18:06 懵懵懂懂的猫 阅读(75) 评论(0) 推荐(0)
摘要:前言: 编写netty网络服务器的时候, 第一行代码, 就是创建线程组 NioEventLoopGroup bossGroup = new NioEventLoopGroup() 下面就来分析下, 其中一个 NioEventLoop NioEventLoop关系 说明 ScheduledExecut 阅读全文
posted @ 2022-06-28 16:30 懵懵懂懂的猫 阅读(220) 评论(0) 推荐(0)
摘要:使用网络编程, 就不可避免客户端存在, 断网, 设备断电, 导致客户端与服务端的连接中断, 在或者启动时候就失败了! 所以需要有重连机制 netty的重连本质上就是在调多一次 bootstrap.connect(remoteAddress).sync() 1.0 最简单的固定间隔时间重连 (不建议使 阅读全文
posted @ 2022-06-27 18:41 懵懵懂懂的猫 阅读(888) 评论(0) 推荐(0)
摘要:前言: Netty 作为一个网络框架,提供了诸多功能,比如编码解码等,Netty 还提供了非常重要的一个服务 心跳机制 heartbeat。通过心跳检查对方是否有效,这是 RPC 框架中是必不可少的功能。下面我们分析一下 Netty 内部心跳服务源码实现。 Netty 提供了 IdleStateHa 阅读全文
posted @ 2022-06-25 17:43 懵懵懂懂的猫 阅读(198) 评论(0) 推荐(0)
摘要:前言: 当一个请求进来的时候,ChannelPipeline 是如何调用内部的这些 handler 链中的处理器的呢? 是如何将处理结果选择是否传递给下一个处理器的呢? 调度分析 DefaultChannelPipeline 分析 相关入站事件 首先,当一个请求进来的时候,会第一个调用 Defaul 阅读全文
posted @ 2022-06-25 16:50 懵懵懂懂的猫 阅读(61) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-14(ChannelPipeline、ChannelHandler、 ChannelHandlerContext创建分析_2020.06.22) 前言: Netty 中的 ChannelPipeline 、 ChannelHandler 和 ChannelHandlerC 阅读全文
posted @ 2022-06-22 20:58 懵懵懂懂的猫 阅读(133) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-11(TCP 粘包和拆包_2022.06.08) TCP 粘包和拆包基本介绍 TCP 是面向连接的,面向字节流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的 socket, 因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nag 阅读全文
posted @ 2022-06-20 17:53 懵懵懂懂的猫 阅读(284) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-12(Netty核心源码剖析-启动_2022.6.9) Netty(服务器)的启动分析 源码分析的方式走一下 Netty (服务器)的启动过程,更好的理解 Netty 的整体 设计和运行机制。 NioEventLoopGroup bossEventLoopGroup = 阅读全文
posted @ 2022-06-20 17:53 懵懵懂懂的猫 阅读(91) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-13(Netty核心源码剖析-接受请求_2022.06.20) 从之前服务器启动的源码中,我们得知,服务器最终注册了一个 Accept 事件等待客户端的连接。也知道, NioServerSocketChannel 将自己注册到了 bossEventLoopGroup 线程 阅读全文
posted @ 2022-06-20 17:53 懵懵懂懂的猫 阅读(48) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-10(Handler链的调用机制_2022.06.02) 前言: 用于管理所有处理器的是ChannelPipeline, 按照操作入站或者出站, 通道里面对应的执行器会执行一篇 执行顺序 客户端的出站 将数据写向socket 称为出站 服务端的入站 将数据从socket 阅读全文
posted @ 2022-06-20 17:52 懵懵懂懂的猫 阅读(60) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-9(编码与解码器机制) 数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码 codec(编解码器) 的组成部分有两个: decoder(解码器)和 encoder(编码器)。 encoder 负责把业务数据转换成字节码数据,decoder 阅读全文
posted @ 2022-06-20 17:51 懵懵懂懂的猫 阅读(306) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-8(WebSocket 编程实现服务器和客户端长连接) 实现的目标 实现基于 webSocket 的长连接的全双工的交互 改变 Http 协议多次请求的约束,实现长连接了, 服务器可以发送消息给浏览器 客户端浏览器和服务器端会相互感知,比如服务器关闭了,浏览器会感知,同样 阅读全文
posted @ 2022-06-20 17:47 懵懵懂懂的猫 阅读(240) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-7((心跳)检测空闲连接以及超时) 1.0 前言: 为了能够及时的将资源释放出来,我们会检测空闲连接和超时。常见的方法是通过发送信息来测试一个不活跃的链接,通常被称为“心跳”,然后在远端确认它是否还活着。(还有一个方法是比较激进的,简单地断开那些指定的时间间隔的不活跃的链 阅读全文
posted @ 2022-06-20 17:46 懵懵懂懂的猫 阅读(671) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-6(Netty简单实现一个群聊_2022.03.14) 实现多人群聊 / 一对一私聊 服务器端:可以监测用户上线,离线,并实现消息转发功能 1.0 编写netty服务端 @Slf4j public class GroupChatServer { public static 阅读全文
posted @ 2022-06-20 17:46 懵懵懂懂的猫 阅读(201) 评论(0) 推荐(0)
摘要:Netty网络框架学习笔记-5(Netty入门HTTP服务_2022-02-21) netty可以支持多种协议, 其中就支持HTTP协议, 可以用来做HTTP服务 (详细说明) Netty 提供的 ChannelHandler是怎样允许您使用 HTTP 和 HTTPS 而无需编写自己的编解码器。 H 阅读全文
posted @ 2022-06-20 17:45 懵懵懂懂的猫 阅读(163) 评论(0) 推荐(0)
摘要:Netty 核心知识点 Channel Channel是 Java NIO 的一个基本构造。可以看作是传入或传出数据的载体。因此,它可以被打开或关闭,连接或者断开连接。 config() 方法是获取通道相关配置参数。 获取channel的状态 boolean isOpen(); //如果通道打开,则 阅读全文
posted @ 2022-02-28 20:53 懵懵懂懂的猫 阅读(224) 评论(0) 推荐(0)
摘要:netty可以支持多种协议, 其中就支持HTTP协议, 可以用来做HTTP服务 (详细说明) Netty 提供的 ChannelHandler是怎样允许您使用 HTTP 和 HTTPS 而无需编写自己的编解码器。 HTTP Decoder, Encoder 和 Codec 1.0 编写服务端 @Sl 阅读全文
posted @ 2022-02-22 20:33 懵懵懂懂的猫 阅读(173) 评论(0) 推荐(0)
摘要:1.0 使用Netty好处 (Netty官网 、GitHub) 原生的NIO编写网络编程需要熟悉Selector、Channel 、Buffer, 并有很多异常情况需要自己考虑解决, 使用Netty 很好的帮我们解决了很多异常的业务场景, 封装了NIO底层API, 简化开发网络编程方式进行快速的开发 阅读全文
posted @ 2022-02-18 20:07 懵懵懂懂的猫 阅读(134) 评论(0) 推荐(0)
摘要:实现的功能有: 监听所有客户端的上线与离线 多人群聊, 客户端发送消息给所有的客户端 (通过服务端转发) 或者单独私聊发送信息! 1.0 服务端的实现 /** * @Author: ZhiHao * @Date: 2022/1/26 17:44 * @Description: 群聊服务端实现 * @ 阅读全文
posted @ 2022-02-18 18:48 懵懵懂懂的猫 阅读(85) 评论(0) 推荐(0)