ICode9

精准搜索请尝试: 精确搜索
  • 详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警2022-07-04 13:03:03

    本系列Netty源码解析文章基于 4.1.56.Final版本 大家第一眼看到这幅流程图,是不是脑瓜子嗡嗡的呢? 大家先不要惊慌,问题不大,本文笔者的目的就是要让大家清晰的理解这幅流程图,从而深刻的理解Netty Reactor的启动全流程,包括其中涉及到的各种代码设计实现细节。 在上篇文章《聊聊Ne

  • 聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现(创建篇)2022-07-03 21:34:32

    本系列Netty源码解析文章基于 4.1.56.Final版本 在上篇文章《聊聊Netty那些事儿之从内核角度看IO模型》中我们花了大量的篇幅来从内核角度详细讲述了五种IO模型的演进过程以及ReactorIO线程模型的底层基石IO多路复用技术在内核中的实现原理。 最后我们引出了netty中使用的主从Re

  • 聊聊Netty那些事儿之从内核角度看IO模型2022-07-03 15:05:07

    从今天开始我们来聊聊Netty的那些事儿,我们都知道Netty是一个高性能异步事件驱动的网络框架。 它的设计异常优雅简洁,扩展性高,稳定性强。拥有非常详细完整的用户文档。 同时内置了很多非常有用的模块基本上做到了开箱即用,用户只需要编写短短几行代码,就可以快速构建出一个具有高吞吐,

  • Netty网络框架学习笔记-20(实现一个简单RPC-2_2020.07.02)2022-07-02 16:00:53

    服务提供者 1.1 定义接口以及其实现 1.1.1 MyRPCTest public interface MyRPCTest { String hiHi(String p1); } 1.1.2 MyRPCTestImpl public class MyRPCTestImpl implements MyRPCTest { @Override public String hiHi(String p1) { return "成功进行了

  • Netty-01-NIO基础2022-06-29 00:00:24

    一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层 graph L

  • Netty网络框架学习笔记-18(NioEventLoop源码与处理器异步任务分析_2020.06.25)2022-06-28 16:34:01

    前言: 编写netty网络服务器的时候, 第一行代码, 就是创建线程组 NioEventLoopGroup bossGroup = new NioEventLoopGroup() 下面就来分析下, 其中一个 NioEventLoop NioEventLoop关系 说明 ScheduledExecutorService 接口表示是一个定时任务接口,EventLoop 可以接受定时任务

  • Docker cloud details:jenkins无法连接Docker,io.netty.channel.AbstractChannel$AnnotatedConnectException2022-06-28 10:00:08

    报错如下: 防火墙关了,安全组也放开IP,也能ping通服务器,但是就是连接不上,后来发现需要开启docker的2375端口 vi /usr/lib/systemd/system/docker.service 参数配置如图 可复制的参数 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 注意:安全组要限定IP访问2375,docker放

  • Netty网络框架学习笔记-15(ChannelPipeline 调度 handler分析_2020.06.25)2022-06-25 17:02:24

    前言: 当一个请求进来的时候,ChannelPipeline 是如何调用内部的这些 handler 链中的处理器的呢? 是如何将处理结果选择是否传递给下一个处理器的呢? 调度分析 DefaultChannelPipeline 分析 相关入站事件 首先,当一个请求进来的时候,会第一个调用 DefaultChannelPipeline 的 相关方

  • Netty网络框架学习笔记-13(Netty核心源码剖析-接受请求_2022.06.20)2022-06-20 18:04:37

    Netty网络框架学习笔记-13(Netty核心源码剖析-接受请求_2022.06.20) 从之前服务器启动的源码中,我们得知,服务器最终注册了一个 Accept 事件等待客户端的连接。也知道, NioServerSocketChannel 将自己注册到了 bossEventLoopGroup 线程池(reactor 线程)上,也就是 EventLoop 。 EventLo

  • Netty网络框架学习笔记-11(TCP 粘包和拆包_2022.06.08)2022-06-20 18:02:18

    Netty网络框架学习笔记-11(TCP 粘包和拆包_2022.06.08) TCP 粘包和拆包基本介绍 TCP 是面向连接的,面向字节流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的 socket, 因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化方法(Nagle 算法),将多次间隔 较小

  • Springboot+Netty搭建基于UDP协议的客户端(四)2022-06-17 18:36:14

    使用Netty+SpringBoot方式可以快速地开发一套基于UDP协议的服务端程序,同样的也可以开发客户端,一般使用UDP都是使用原生的方式,发送消息后就不管不问,也就是不需要确定消息是否收到,这里使用Netty创建的客户端和服务端倒是能够类似http协议那样请求数据,得到返回数据,实际上得到的就是服

  • Netty源码解读(一)-前置准备2022-06-16 11:03:28

    前置条件 源码版本netty4.1 了解Java NIO、Reactor模型和Netty的基本使用。 解释一下: Java NIO:了解BIO和NIO的区别以及Java NIO基础API的使用 Reactor模型:Netty是基于Netty模型对Java NIO封装的框架 Netty的基本使用:先学会基本使用再看源码,这样可以带着看源码,事半功倍(这个api为啥

  • [09] Reactor 线程模型解析2022-06-14 23:34:49

    摘自《Netty 即时聊天实战与底层原理》 1. NioEventLoopGroup 创建 这部分,我们着重分析下面两行代码。 NioEventLoopGroup bossGroup = new NioEventLoopGroup(1); NioEventLoopGroup workerGroup = new NioEventLoopGroup(); 1.1 确定 NioEventLoop 的个数 在 NioEventLoopGro

  • netty系列之:我有一个可扩展的Enum你要不要看一下?2022-06-06 16:02:36

    目录简介enum和Enumnetty中可扩展的Enum:ConstantPool使用ConstantPool总结 简介 很多人都用过java中的枚举,枚举是JAVA 1.5中引用的一个新的类型,用来表示可以列举的范围,但是可能很少有人知道java中的enum到底是怎么工作的,enum和Enum有什么关系?Enum可不可以扩展? 一起来看看吧。 enu

  • netty(五)Client与Server双向通信2022-06-03 15:32:00

    一、本章重点 ChannelInboundHandlerAdapter.java【管道连接处理适配器】   作用:定义了channelActive()、channelRead()等方法,用于定义netty管道操作过程中的一些处理方法。 ChannelInboundHandlerAdapter.channelActive()【管道连接成功后回调,操作方法】   作用:连接上服务端

  • graalvm 编译原生java 解决反射的问题 maven配置2022-06-03 12:35:46

    由来 之前已经采坑完成了基于maven项目的java 二进制编译,但实际上基于原生的程序,在运行时是无法进行反射的,需要单独生成配置文件 手动配置是不可能的,所以graavm提供一个agent工具,该工具会生成整个代码中需要用到反射的配置文件,但前提是,需要你把项目打成jar包....生成配置文件之后,

  • netty系列之:给ThreadLocal插上梦想的翅膀,详解FastThreadLocal2022-06-01 14:02:13

    目录简介从ThreadLocalMap中获取数据FastThreadLocal总结 简介 JDK中的ThreadLocal可以通过get方法来获得跟当前线程绑定的值。而这些值是存储在ThreadLocal.ThreadLocalMap中的。而在ThreadLocalMap中底层的数据存储是一个Entry数组中的。 那么从ThreadLocalMap中获取数据的速度

  • 什么是Netty编解码,Netty编解码器有哪些?Protostuff怎么使用?2022-05-30 08:00:37

    哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一、前言 书接上回,昨天下雨没怎么上街上溜达,今天是个大晴天,准备去街上看看老头下象棋,毕竟我的象棋技术在我们人才村也

  • 面试官:什么是Netty粘包拆包?怎么解决Netty粘包拆包问题2022-05-30 08:00:27

    哈喽!大家好,我是小奇,一位热爱分享的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一、前言 书接上回,昨天肯定是狗蛋通风报信,导致大爷们那么神秘的下象棋基地也被大妈捣毁了,今天肯定去下不了象棋了。

  • Netty(6):ByteBuf2022-05-22 22:34:29

    ByteBuf的创建 通过ByteBufAllocator.DEFAULT.buffer()进行创建ByteBuf ByteBuf buffer = ByteBufAllocator.DEFAULT.buffer(); System.out.println(buffer); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 33; i++) {

  • 脚踏实地的Netty源码研究笔记——开篇2022-05-20 17:32:53

    1. 脚踏实地的Netty源码研究笔记(1)——开篇 1.1. Netty介绍 Netty是一个老牌的高性能网络框架。在众多开源框架中都有它的身影,比如:grpc、dubbo、seata等。 里面有着非常多值得学的东西: I/O模型 内存管理 各种网络协议的实现:http、redis、websocket等等 各种各样有趣的技巧

  • netty系列之:netty对marshalling的支持2022-05-20 16:01:39

    目录简介netty中的marshalling providerMarshalling编码器Marshalling编码的另外一种实现总结 简介 在之前的文章中我们讲过了,jboss marshalling是一种非常优秀的java对象序列化的方式,它可以兼容JDK自带的序列化,同时也提供了性能和使用上的优化。 那么这么优秀的序列化工具可不可

  • Netty(2):EventLoop2022-05-19 14:03:39

    EventLoop EventLoop 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。 它的继承关系比较复杂 一条线是继承自 j.u.c.ScheduledExecutorService 因此包含了线程池中所有的方法 另一条线是继承自 netty 自己的 OrderedEventExe

  • boot netty mqtt2022-05-12 01:33:02

    package com.luban.netty2;/** * @auther:zhoulei * @description: BootNettyApplication * @date : 2022/5/12 0:16 * QQ:20971053 */import com.luban.netty2.core.BootNettyServer;import org.springframework.boot.SpringApplication;import org.springframework.boot.aut

  • springboot启动成功后启动netty服务端2022-05-07 10:00:56

    springboot提供了ApplicationRunner接口,在服务器启动成功后,可以添加自己的业务逻辑 1 @Component 2 public class NettyStartListener implements ApplicationRunner { 3 4 @Autowired 5 private SocketServer socketServer; 6 7 8 9 10 @Ove

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有