![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 90
阿拉斯加大闸蟹
JDcloud;ByteDance;XueQiu;YiChe;CATARC
展开
-
JVM 堆外内存泄漏
首先开启:-XX:NativeMemoryTracking=detail然后jcmd pid VM.native_memory detail,打出内存分配信息,注意NativeMemoryTracking显示的内存不包含C++分配的内存。此处需要关注两个点:第一,Total行的committed数值是否等于进程占用的物理内存,如果不等,说明有C++等native code分配的内存,可参考Java调用C++组件分析;第二,Native Memory Tracking的committed.原创 2020-08-10 13:45:27 · 2268 阅读 · 0 评论 -
netty实战
基本使用同步请求:private static final String DESTINATION_ADDRESS = "https://github.com/soulrelay";OkHttpClient client = new OkHttpClient.Builder().build();Request request = new Request.Builder() .url(DESTINATION_ADDRESS) .build();Response r原创 2021-06-16 10:48:07 · 10206 阅读 · 0 评论 -
netty源码分析
Netty 启动过程源码剖析源码需要剖析到Netty 调用doBind方法, 追踪到 NioServerSocketChannel的doBind 并且要Debug 程序到 NioEventLoop类 的run代码 ,无限循环,在服务器端运行。创建2个 EventLoopGroup 线程池数组。数组默认大小CPU*2,方便chooser选择线程池时提高性能 BootStrap 将 b...原创 2020-04-17 18:56:26 · 1444 阅读 · 0 评论 -
lettuce共享连接如何实现以及command发送流程
在此之前现需要了解一下netty,来看看底层的多路复用是怎么一回事,reactor模型,future-liustener机制(类似于lettuce里面的响应式编程)是怎么来进行非阻塞的小总结:看我前面几个blog《netty实战》总结网上找个lettuce调用路线图网上又找了个connection连接建立路线图问题:还是之前在redis 跨机房调用性能分析,中遇见的...原创 2020-04-16 11:03:39 · 4363 阅读 · 0 评论 -
《netty实战》读书笔记一---selector、reactor模型、NIO与零拷贝
首先先自己熟悉一下selector、epoll、NIO编程、reactor模型I/O 模型基本说明 I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java共支持3种网络编程模型/IO模式:BIO、NIO、AIOJava BIO : 同步并阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进...原创 2020-04-08 15:39:14 · 3491 阅读 · 0 评论 -
《netty实战》读书笔记四---心跳、编码解码、TCP 粘包和拆包 及解决方案
netty心跳IdelStateHandlerhttp是无状态,Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接,webSocket的长连接的全双工的交互,改变Http协议多次请求的约束,实现长连接了, 服务器可以发送消息给浏览器http传输过程中是分段的,HttpObjectAggregator可以将多个段聚合浏览器在发送大量数据的时候,就会发出多次...原创 2020-04-12 23:25:50 · 1497 阅读 · 0 评论 -
《netty实战》读书笔记三---channel、selector、channelHandler、Pipeline、ChannelOption、Unpooled等核心组件
netty核心组件:channelNetty 网络通信的组件,能够用于执行网络 I/O 操作。 通过Channel 可获得当前网络连接的通道的状态 通过Channel 可获得 网络连接的配置参数 (例如接收缓冲区大小) Channel 提供异步的网络 I/O 操作(如建立连接,读写,绑定端口),异步调用意味着任何 I/O 调用都将立即返回,并且不保证在调用结束时所请求的 I/O 操作...原创 2020-04-10 16:52:53 · 1597 阅读 · 0 评论 -
《netty实战》读书笔记二--reactor模型、处理流程、pipeline功能、异步模型
netty模型:netty抽象出两组线程池BossGroup专门负责接收客户端的连接,WorkGroup专门负责网络的读写 BossGroup和WorkGroup类型都是NIOEventLoopGroup NIOEventLoopGroup相当于一个事件循环组,这个组中有多个事件循环,每个事件循环是NIOEventLoop NIOEventLoop表示一个不断循环的执行处理任务...原创 2020-04-08 15:45:40 · 1503 阅读 · 0 评论 -
netty功能实现讲解
本文的所有示例代码出处:https://github.com/singgel/NettyDemo/tree/master/src/test/java/com/singgel一. 简介Netty is a NIO client server framework which enables quick and easy development of network applications ...原创 2018-11-09 15:53:15 · 1515 阅读 · 0 评论 -
为什么建议 Netty 的 I/O 线程与业务线程分离
问题背景:某互联网同学咨询一个Netty使用问题:最近在研究公司内部的RPC框架,发现底层通信框架使用的是Netty,而且Netty的I/O线程与处理业务的线程分离。具体如下:1、负责服务端监听的是Accept NioEventLoopGroup线程组2、负责链路读写操作的是Work NioEventLoopGroup线程组3、消息解码完成之后,投递到后端的一个业务线程池中处理,...转载 2017-09-25 14:57:56 · 2219 阅读 · 0 评论 -
Netty与Spring Boot的整合
https://github.com/singgel/NettyDemoServer端:总的来说,服务端还是比较简单的,自己一共写了三个核心类。分别是NettyServerListener:服务启动监听器 ServerChannelHandlerAdapter:通道适配器,主要用于多线程共享 RequestDispatcher:请求分排器https://github.com/...原创 2018-03-02 13:47:36 · 3776 阅读 · 0 评论