Bootstrap
Socket粘包问题终极解决方案—Netty版(2W字)!

上一篇我们讲了《Socket粘包问题的3种解决方案》,但没想到评论区竟然炸了。介于大家的热情讨论,以及不同的反馈意见,本文就来做一个扩展和延伸,试图找到问题的最优解,以及消息通讯的最优解决方案。

Netty如何高效接收网络数据?一文聊透ByteBuffer动态自适应扩缩容机制

本文介绍了Netty如何高效接收网络连接全流程并深入剖析了ByteBuffer动态自适应扩缩容机制。阐述了为什么会使用堆外内存来为ByteBuffer分配内存,由此引出了Netty的内存池PooledByteBufAllocator

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

本文适合对Netty一无所知的Java NIO网络编程新手阅读,为了做到这一点,内容从最基本介绍到开发环境的配置,再到第一个Demo代码的编写,事无巨细都用详细的图文进行了说明。

如何评价Netty封装的io_uring?

在继续 io_uring 的旅行之前,让我们先回顾一下 linux 中的各种异步 IO,也就是 AIO。

netty系列之:使用netty实现支持http2的服务器

简介上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https的一个必须要求,它只是建议的标准。那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。

netty系列之:在netty中处理CORS

简介CORS的全称是跨域资源共享,他是一个基于HTTP-header检测的机制,通过对HTTP-header进行控制,可以实现对跨域资源的权限管理功能。在之前的CORS详解文章中,我们已经对CORS有了基本的解释。

netty系列之:自动重连

简介我们在使用客户端和服务器端连接的过程中,可能会因为各种问题导致客户端和服务器的连接发生中断,遇到这种情况,一般情况下我们需要使用监控程序去监听客户端和服务器端的连接,如果第一时间发现连接断开了,就需要手动去重连。比较麻烦,今天给大家介绍

netty系列之:使用POJO替代buf

简介在之前的文章中我们提到了,对于NioSocketChannel来说,它不接收最基本的string消息,只接收ByteBuf和FileRegion。但是ByteBuf是以二进制的形式进行处理的,对于程序员来说太不直观了,处理起来也比较麻烦,有没有可能直接处理java简单对象呢?本文将会探

netty系列之:内置的Frame detection

简介上篇文章我们讲到了netty中怎么自定义编码和解码器,但是自定义实现起来还是挺复杂的,一般没有特殊必要的情况下,大家都希望越简单越好,其难点就是找到ByteBuf中的分割点,将ByteBuf分割成为一个个的可以处理的单元。今天本文讲讲netty中自带的分割处理

netty系列之:搭建HTTP上传文件服务器

简介上一篇的文章中,我们讲到了如何从HTTP服务器中下载文件,和搭建下载文件服务器应该注意的问题,使用的GET方法。本文将会讨论一下常用的向服务器提交数据的POST方法和如何向服务器上传文件。

netty系列之:channel和channelGroup

channel是netty中数据传输和数据处理的渠道,也是netty程序中不可或缺的一环。在netty中channel是一个接口,针对不同的数据类型或者协议channel会有具体的不同实现。

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

剖析Timer 、DelayQueue、ScheduledThreadPool 原理,再对比时间轮的原理以及时间轮在Netty 和 Kafka中的应用

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

剖析Timer 、DelayQueue、ScheduledThreadPool 原理,再对比时间轮的原理以及时间轮在Netty 和 Kafka中的应用

知道时间轮算法吗?在Netty和Kafka中如何应用的?为什么不用Timer、延时线程池?

剖析Timer 、DelayQueue、ScheduledThreadPool 原理,再对比时间轮的原理以及时间轮在Netty 和 Kafka中的应用

彻底搞懂 IO 底层原理

IO在语言层面的抽象是高阶的语法和已经固定成熟的实现方式,我们熟知的Java NIO或者更强大的Netty框架,开发只需要了解并熟练使用就可以开发出一个性能不错的通信程序。

面试官:Netty的线程模型可不只是主从多Reactor这么简单

Netty 的线程模型基于主从多Reactor模型。通常由一个线程负责处理OP_ACCEPT事件,拥有 CPU 核数的两倍的IO线程处理读写事件。在一个网络通信中通常会包含网络数据读写,编码、解码、业务处理,如何选择合适的线程模型呢

[Netty]- Reactor实现

Netty 关于Reator的实现

netty系列之:netty初探

简介我们常用浏览器来访问web页面得到相关的信息,通常来说使用的都是HTTP或者HTTPS协议,这些协议的本质上都是IO,客户端的请求就是In,服务器的返回就是Out。但是在目前的协议框架中,并不能完全满足我们所有的需求。比如使用HTTP下载大文件,可能需要长连

【Netty技术专题】「原理分析系列」Netty强大特性之ByteBuf零拷贝技术原理分析

我们先来看下它的定义:Netty中的 Zero-copy 与上面我们所提到到 OS 层面上的 Zero-copy 不太一样, Netty的 Zero-copy 完全是在用户态(Java 层面)的,它的 Zero-copy 的更多的是偏向于 优化数据操作 这样的概念.

Netty源码解析 -- ChannelPipeline机制与读写过程

本文继续阅读Netty源码,解析ChannelPipeline事件传播原理,以及Netty读写过程。

Netty源码解析 -- 零拷贝机制与ByteBuf

本文来分享Netty中的零拷贝机制以及内存缓冲区ByteBuf的实现。

源码分析-Netty: 架构剖析

本篇介绍了Netty的逻辑架构。深入分析可以发现『简单』的基础之上蕴含了很多我们学习过的架构设计原则,例如分层架构、Reactor模型、责任链设计模式、事件模型等等。正是由于有这些非常合理的设计,才有基于Netty的各种应用服务器和协议栈开发的快速发展。

源码分析Netty:核心组件及启动过程分析

本篇从实例出发,了解Netty核心组件的概念、作用及串联过程。从概念到设计原理,再到深入了解实现细节,从而能够清晰地掌握Netty的技术细节甚至存在的问题,才能最终更好地支持我们实际的各项业务。

源码分析-Netty: 高性能之道

在源码分析-Netty: 架构剖析中,我们介绍了Netty的逻辑架构,本篇将继续深入,从架构层面对Netty的高性能设计和关键代码进行分析,看Netty如何支撑高性能网络通信。

Netty浅析

之前第一次接触就被这种处理I/O的方式惊艳到了,写Netty总有一种不是在写业务;而是真的在写代码的感觉!而且写过不少Reactor模型的代码,但基本都是Echo版本的,于是很想知道Netty到底封装了什么,为什么是很多高性能框架(SpringWebFlux,Dubbo,Lettuce)的

长连接网关技术专题(四):爱奇艺WebSocket实时推送网关技术实践

本文分享了爱奇艺基于Netty实现WebSocket长连接实时推送网关时的实践经验总结。

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

本文适合对Netty一无所知的Java NIO网络编程新手阅读,为了做到这一点,内容从最基本介绍到开发环境的配置,再到第一个Demo代码的编写,事无巨细都用详细的图文进行了说明。

跟着源码学IM(八):万字长文,手把手教你用Netty打造IM聊天

上篇《跟着源码学IM(七):手把手教你用WebSocket打造Web端IM聊天》中,我们使用 WebSocket 实现了一个简单的 IM 功能,支持身份认证、私聊消息、群聊消息。 然后就有人发私信,希望使用纯 Netty 实现一个类似的功能,因此就有了本文。

跟着源码学IM(十):基于Netty,搭建高性能IM集群(含技术思路+源码)

本文将根据笔者这次的业余技术实践,为你讲述如何基于Netty+Zk+Redis来搭建一套高性能IM集群,包括本次实现IM集群的技术原理和实例代码,希望能带给你启发。

跟着源码学IM(九):基于Netty实现一套分布式IM系统

接下来的内容,我会为你介绍如何开发一个IM的方方面面,包括系统架构、通信协议、单聊群聊、表情发送、UI事件驱动等,以及全套的实践源码让你可以上手学习。

长连接网关技术专题(四):爱奇艺WebSocket实时推送网关技术实践

本文分享了爱奇艺基于Netty实现WebSocket长连接实时推送网关时的实践经验总结。

netty系列之:使用netty搭建websocket客户端

简介在网速快速提升的时代,浏览器已经成为我们访问各种服务的入口,很难想象如果离开了浏览器,我们的网络世界应该如何运作。现在恨不得把操作系统都搬上浏览器。但是并不是所有的应用都需要浏览器来执行,比如服务器和服务器之间的通信,就需要使用到自建客

netty系列之:使用netty搭建websocket服务器

简介websocket是一个优秀的协议,它是建立在TCP基础之上的,兼容HTTP的网络协议。通过Websocket我们可以实现客户端和服务器端的即时通讯,免除了客户端多次轮循带来的性能损耗。

跟着源码学IM(九):基于Netty实现一套分布式IM系统

接下来的内容,我会为你介绍如何开发一个IM的方方面面,包括系统架构、通信协议、单聊群聊、表情发送、UI事件驱动等,以及全套的实践源码让你可以上手学习。

其他标签