netty
缘浅情深
啊啊啊啊啊啊啊啊啊啊啊啊啊啊
展开
-
netty之buffer
关于bufferbuffer中文名又叫缓冲区,按照维基百科的解释,是”在数据传输时,在内存里开辟的一块临时保存数据的区域”。它其实是一种化同步为异步的机制,可以解决数据传输的速率不对等以及不稳定的问题。根据这个定义,我们可以知道涉及I/O(特别是I/O写)的地方,基本会有buffer的存在。就Java来说,我们非常熟悉的Old I/O–InputStream&OutputStrea翻译 2014-02-26 11:27:31 · 742 阅读 · 0 评论 -
Netty4底层用对象池和不用对象池实践优化
有用的地址: https://stackoverflow.com/questions随着JVM虚拟机和JIT即时编译技术的发展,对象的分配和回收是个非常轻量级的工作。但是对于缓冲区Buffer,情况却稍有不同,特别是对于堆外直接内存的分配和回收,是一件耗时的操作。为了尽量重用缓冲区,Netty提供了基于内存池的缓冲区重用机制。性能测试表明,采用内存池的ByteBuf转载 2017-09-26 22:54:05 · 414 阅读 · 0 评论 -
Netty之解决TCP粘包拆包(自定义协议)
1、什么是粘包/拆包 一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据。TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消息数据,所以就会引发一次接收的数据无法满足消息的需要,导致粘包的存在。处理粘包的唯一方法就是制定应用层的数据通讯协议,通过协议来规范现有接收的数据是否满足消息数据的需要。2转载 2017-08-06 20:48:15 · 759 阅读 · 0 评论 -
Netty系列之Netty高性能之道
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于N转载 2016-04-13 14:44:42 · 417 阅读 · 0 评论 -
Netty系列之Netty百万级推送服务设计要点
1. 背景1.1. 话题来源最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类:Netty是否可以做推送服务器?如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端?使用Netty开发推送服务遇到的各种技术问题。由于转载 2015-01-04 20:45:58 · 1886 阅读 · 0 评论 -
用Netty实现的简单HTTP服务器
1.Serverpublic class HttpServer { public static void main(String[] args) { ServerBootstrap bootstrap = new ServerBootstrap(new NioServerSocketChannelFactory( Executors.newCachedThreadPool(), Exec翻译 2014-03-05 16:31:54 · 1676 阅读 · 0 评论 -
关于netty
netty是JBOSS针对网络开发的一套应用框架,它也是在NIO的基础上发展起来的。netty基于异步的事件驱动,具有高性能、高扩展性等特性,它提供了统一的底层协议接口,使得开发者从底层的网络协议(比如 TCP/IP、UDP)中解脱出来。在互联网的应用中有一个特点,高并发,但处理逻辑相对简单。针对这个特别有时间我们可以相对的简化下平时所有的WEB服务器,来满足这一的特点,而且更方便控制。Netty原创 2014-02-13 17:01:26 · 1089 阅读 · 0 评论 -
InetAddress和InetSocketAddress的区别
1、InetAddress一般这样使用:其中不可以包含端口(我看文档了,这样理解是对的)。InetAddress remoteAddr=InetAddress.getByName(“112.5.4.45″);2、InetSocketAddress可以实现地址+端口。在需要设置连接超时时间的场合,必须使用InetSocketAddress。Socket socket=new Sock原创 2014-02-13 17:02:24 · 3447 阅读 · 0 评论 -
netty之Channel与Pipeline
一层梦境:Channel实现概览在Netty里,Channel是通讯的载体,而ChannelHandler负责Channel中的逻辑处理。那么ChannelPipeline是什么呢?我觉得可以理解为ChannelHandler的容器:一个Channel包含一个ChannelPipeline,所有ChannelHandler都会注册到ChannelPipeline中,并按顺序组织翻译 2014-02-26 11:35:09 · 851 阅读 · 0 评论 -
一次线上netty服务端大量CLOSE_WAIT的解决
问题描述:服务端做了一个心跳检测,规定的时间范围内app没有发送数据过来,然后服务器主动close掉这个连接,但是发现并没有真正的关掉,连接而是都处于CLOSE_WAIT状态。解决方案:1.调整linux下/etc/sysctl.conf参数,里面增加net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 60net原创 2017-11-01 14:50:45 · 10233 阅读 · 1 评论