IO
崔耀强
微服务架构设计
展开
-
Netty之http协议开发
Netty HTTP协议开发应用: 由于Netty的HTTP协议栈是基于Netty的NIO通信框架开发的,因此Netty的HTTP协议也是异步非阻塞的。 HTTP请求消息: HTTP请求由三部分组成,具体如下:HTTP请求行请求行以一个方法符开头,以空格分开,后面跟着请求的URI和协议的版本,格式为:Method Request-URI HTTP-Version CRL原创 2016-06-08 09:04:21 · 3158 阅读 · 0 评论 -
LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak reporting
问题描述:LEAK: ByteBuf.release() was not called before it's garbage-collected. Enable advanced leak reporting to find out where the leak occurred. To enable advanced leak reporting, specify the JVM option原创 2016-08-31 16:03:01 · 11376 阅读 · 2 评论 -
Netty5基础知识介绍及简单使用
Netty基础知识 Netty 是一个 NIO client-server(客户端服务器)框架, 使用 Netty 可以快速开发网络应用,例如服务器和客户端协议。Netty 提供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。Netty 的内部实现时很复杂的,但是 Netty 提供了简单易用的 api 从网络处理代码中解耦业务逻辑。Netty原创 2016-06-12 10:34:17 · 1647 阅读 · 0 评论 -
Netty之ChannelHandler以及状态模型介绍
接受连接或创建连接只是IO应用程序的一部分,虽然这些很重要,但是一个网络应用程序往往是更复杂的需要更多的代码编写的地方是处理传入和传出的数据。 Netty 提供了一个强大的处理这些事情的功能,允许用户自定义 ChannelHandler 的实现来处理数据。ChannelHandler 更强大的是可以连接每个 ChannelHandler 来实现任务,这有助于代码的整洁和重用。但是处理数据只是原创 2016-06-13 11:05:17 · 4373 阅读 · 0 评论 -
Netty 缓存buffer介绍及使用
每当你需要传输数据时,它必须包含一个缓冲区。Java NIO API 自带的缓冲区类是相当有限的,没有经过优化,使用 JDK 的 ByteBuffer 操作更复杂。缓冲区是一个重要的组建,它是 API 的一部分。Netty提供了一个强大的缓冲区实现用于表示一个字节序列,并帮助你操作原始字节或自定义的 POJO。Netty 的 ByteBuf 相当于 JDK 的ByteBuffer,ByteBuf的作原创 2016-06-13 10:19:10 · 28626 阅读 · 1 评论 -
Netty数据传输
网络应用程序一个很重要的工作是传输数据。传输数据的过程不一样取决是使用哪种交通工具,但是传输的方式是一样的:都是以字节码传输。Java 开发网络程序传输数据的过程和方式是被抽象了的,我们不需要关注底层接口,只需要使用 Java API 或其他网络框架如 Netty 就能达到传输数据的目的。发送数据和接收数据都是字节码。Nothingmore,nothing less。Netty传输AP原创 2016-06-12 10:55:40 · 5936 阅读 · 0 评论 -
Java BIO、NIO、AIO基础概念
先来个例子理解一下概念,以银行取款为例。 同步与异步:这两个概念与消息的通知机制有关,也就是同步的情况下,是由处理消息者自己去等待消息是否被触发,而异步的情况下是由触发机制来通知处理消息者,. ① 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。 ② 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给O原创 2016-05-10 10:22:36 · 764 阅读 · 0 评论 -
NIO应用实现多客户端与服务端通信
服务端程序:package com.bh.server;import java.io.IOException;import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.nio.ByteBuffer; import java.nio.cha原创 2016-05-10 10:25:31 · 2828 阅读 · 1 评论 -
NIO 基础知识学习
NIO基础知识学习,以及NIO服务端、客户端编程过程。原创 2016-05-25 14:56:25 · 462 阅读 · 0 评论 -
Netty拆包粘包以及编解码技术
TCP拆包粘包 TCP是个流协议,所谓流就是没有界限的一串数据。TCP底层并不了解上层业务数据的具体定义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为一个完整的包可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。 TCP粘包拆包发生的原因: 问题产生的原因有三个,分别如下:应用程序Write写入的字节大小大原创 2016-06-08 08:55:53 · 1886 阅读 · 0 评论 -
An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means
问题描述:警告: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.java.io.IOException: 远程主机强迫关闭了原创 2016-08-31 16:06:57 · 72490 阅读 · 12 评论