
netty
sicexpn
这个作者很懒,什么都没留下…
展开
-
Netty初探-架构剖析
Netty逻辑架构Netty采用了典型的三层网络架构进行设计与开发。逻辑架构如下: Reactor通信调度层主要职责:监听网络的读写和连接操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,由Pipeline管理的职责链进行后续处理。 由一系列的辅助类完成,包括Reactor线程NioeventLoop以及原创 2015-04-29 14:48:24 · 1388 阅读 · 0 评论 -
Netty初探-解决TCP粘包/拆包问题
业务上一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。 对于这类问题,netty提供了LineBasedFrameDecoder和StringDecoder进行完美解决。如下是相关代码。代码 TimeServer package com.xpn.netty.netty;import io.netty.bootstrap原创 2015-04-29 14:03:26 · 11033 阅读 · 0 评论 -
Netty初探-编解码技术
要谈编解码技术,首先从Java序列化进行谈起。由于Java序列化无法跨语言,很少用来进行消息的编解码和传输。而且序列化之后的码流太大,序列化性能太低,所以,有很大主流的编解码框架应运而生。主要介绍主流的三大编解码器。Google的Protobuf、FaceBook的Thrift以及JBoss的Marshalling。 Google Protocol Buffers 结构化数据存储格式(XML,JS原创 2015-04-29 14:27:26 · 1670 阅读 · 0 评论 -
Netty初探-行业应用及未来
Netty行业应用Netty在互联网行业的应用传统垂直架构面临的问题 前后台耦合,业务无法有效拆分。 缺乏高性能的RPC框架,集群节点间的通信效率低下。 缺少统一的服务注册中心对集群服务进行管理,系统弹性化不足。 服务增多时,无法对服务进行有效的容量评估和治理。 阿里分布式服务框架Dubbo Netty+二进制编解码框架实现内部协议。 Zookeeper作为服务注册中心,动态注册和发现服务 服务治理原创 2015-04-29 15:10:54 · 2893 阅读 · 0 评论 -
Netty初探-基本概念和相关类介绍
基本概念 概念Netty是由JBOSS提供的一个java NIO开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。可实现的功能见下图: Netty vs Mina vs GrizzlyMina的设计理念最为优雅,Netty和Mina的主导作者是同一人。 Mina出自于Apache,Netty出身于商业开源大亨Jboss,而Griz原创 2015-04-27 17:13:17 · 1823 阅读 · 0 评论 -
Netty初探-netty服务端和客户端demo
通过netty框架实现一个简单的服务端和客户端框架,相比于前面所说的NIO,netty的api使用更加简单灵活,扩展性强。 TimeServer package com.xpn.netty.netty;import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.ch原创 2015-04-28 15:19:30 · 14476 阅读 · 1 评论 -
Linux网络I/O模型整理
Linux的内核将所有外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核的系统命令,返回一个fd(file descriptor),对于socket则对应为socket描述符,描述符就是一个数字,指向内核中的一个结构体(文件路径、数据区等)。 根据对I/O模型的分类,linux提供了5种I/O模型。包括阻塞I/O模型、非阻塞I/O模型、I/O复用模型、信号驱动I/O模型、异步I/O。下面原创 2015-04-28 13:31:57 · 679 阅读 · 0 评论 -
Netty初探-I/O对比
通过简单的Demo开发,熟悉传统的同步阻塞I/O(BIO)、伪异步I/O、非阻塞I/O(Nio)以及异步I/O(AIO)的差异。同步阻塞I/O(BIO)BIO通信模型(一客户端一线程)代码分析 TimerServer package com.xpn.netty.bio;import java.io.IOException; import java.net.ServerSocket; import j原创 2015-04-28 13:01:39 · 1325 阅读 · 1 评论