Netty
MayMatrix
J2EE .
展开
-
【TCP长连接】使用TCP长连接提升服务性能
1、概述在《性能优化篇-理论基础》中,我们知道了提升服务性能的两个思路,分别是提升服务并发能力和降低请求的响应时间(RT)。一个请求的响应时间包括两部分,等待时间和执行时间。在《性能优化篇-减少网络传输包提升服务性能》中分析了如何减少网络包的传输来降低响应的等待时间,从而提升服务的性能。本文继续从网络通信方面来描述如何通过长连接来提升服务性能。2、为什么长连接可以提升服务性能在TCP/IP协议中,传输层负责应用程序之间的网络通信数据的传输,传输层协议主要有UDP和TCP。UDP协议是面向无连接的转载 2020-09-10 17:39:06 · 1747 阅读 · 0 评论 -
【TCP 长连接】Netty源码笔记:TCP长连接和IdleStateHandler
日常工作中TCP长连接在一些优秀的中间件或开源项目中得到大量的使用。比如zookeeper的订阅和监听、日常使用的各种数据库连接池、redis连接池、常用的RPC框架dubbo/美团pigeon、美团的监控系统Cat等等。使用TCP长连接的优势在于:1、有效避免频繁的三次握手、四次挥手开销;2、避免TCP滑动窗口冷启动的低效问题能极大的提升网络通信的效率。缺点也比较明显,当客户端因为断电、网线被拔除等原因突然断开时,服务端没办法及时知道客户端已经断线,不能及时回收socket占用的系统资源。首转载 2020-09-10 17:34:40 · 486 阅读 · 0 评论 -
【TCP 长连接】聊聊 TCP 长连接和心跳那些事
1 前言可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次挥手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳的问题,做一个统一的整理。在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文会借用它们的一些 API 和设置参数来辅助介绍。2 长连接转载 2020-09-10 17:17:26 · 739 阅读 · 1 评论 -
Java NIO浅析
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?本文会从传统的阻塞I/O和线程池模型面临的问题讲起,然后对比几种常见I/O模型,一步步分析NIO怎么利用事件模型处理I/O,解决线程池瓶颈处理海量连接,包括利用面向事件的方式编写服务端/客户端程转载 2020-06-04 15:08:45 · 171 阅读 · 0 评论 -
Netty 原理
版本说明Netty3(3.x)版本是比较旧的版本。Netty4(4.x)版本是当前官方推荐的,目前一直在维护中。跟3.x版本相比变化比较大,特别是API。Netty5(5.x)是被舍弃的版本,官方不推荐使用!Netty5舍弃的官方解释:1. netty5 中使用了 ForkJoinPool,增加了代码的复杂度,但是对性能的改善却不明显2. 多个分支的代码同步工作量很大3. 作者觉得当下还不到发布一个新版本的时候4. 在发布版本之前,还有更多问题需要调查一下,比如是否应该废弃转载 2020-05-20 10:47:26 · 284 阅读 · 1 评论 -
TCP与UDP的区别
摘要:计算机网络基础引言网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别。一、TCP/IP网络模型计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间...转载 2020-02-17 22:00:37 · 925 阅读 · 0 评论 -
BIO,NIO,AIO的理解
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号问题1什么是同步?2什么是异步?3什么是阻塞?4什么是非阻塞?5什么是同步阻塞?6什么是同步非阻塞?7什么是异步阻塞?8什么是异步非阻塞转载 2017-09-25 09:36:32 · 290 阅读 · 0 评论 -
【总结】Netty(RPC高性能之道)原理剖析
1,Netty简述Netty 是一个基于 JAVA NIO 类库的异步通信框架,用于创建异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性的网络客户端和服务器端RPC高性能分析,请参考文章“【总结】RPC性能之道 ”特点异步、非阻塞、基于事件驱动的NIO框架支持多种传输层通信协议,包括TCP、UDP等开发异步HTTP服务端和客户端应用程序提供对多种应用层协议的支持,包括TC转载 2017-07-17 16:35:33 · 326 阅读 · 0 评论 -
Netty源码解读——Netty与Reactor模式
Netty源码解读(四)Netty与Reactor模式一:Netty、NIO、多线程?时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手。过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读 ,看完也是收获不少。前面的文章我们分析了Netty的结构,这次咱们来分析最错综复杂的一部分-Netty中的多线程以及NIO的应用。理清NIO与N转载 2017-07-17 16:17:18 · 715 阅读 · 0 评论 -
Netty基础之Netty高性能之道
1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高转载 2017-07-17 16:11:56 · 465 阅读 · 0 评论