写点什么

nio

0 人感兴趣 · 80 次引用

  • 最新
  • 推荐

Tars-Java 网络编程源码分析

本文从java NIO网络编程的基础知识讲到了Tars框架使用NIO进行网络编程的源码分析。

https://static001.geekbang.org/infoq/b2/b28809713979f74c5074887a9c96b5e7.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文详解 Netty 组件

Netty 是一款优秀的高性能网络框架,内部通过 NIO 的方式来处理网络请求,在高负载下也能可靠和高效地处理 I/O 操作。下面这篇文章将主要对 Netty 中的各个组件进行分析,并在介绍完了各个组件之后,通过 JSF 这个 RPC 框架为例来分析 Netty 的使用。

https://static001.geekbang.org/infoq/9d/9d68fa612d9ff576280819482fc45413.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

JVM 说 -- 直接内存的使用

学习底层原理有的时候不一定你是要用到他,而是学习他的设计思想和思路。再或者,当你在日常工作中遇到棘手的问题时候,可以多一条解决问题的方式。

IO 原理(二):多路复用

用户头像
苏格拉格拉
2022-11-16

从bio到nio多路复用、io模型(同步/异步、阻塞/非阻塞)、多路复用(select/poll/epoll)、Reactor(单/多Reactor、单/多线程)

IO 原理(一):从 BIO 到 NIO

用户头像
苏格拉格拉
2022-11-15

Liniux操作系统内核、IO工作原理、Java BIO、JavaNIO、NIO思考

https://static001.geekbang.org/infoq/91/91b8b2136336439531b6b5d8a78254f7.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从 Linux 内核角度探秘 JDK NIO 文件读写本质

带你彻底打通 Linux 文件 IO 相关知识系统脉络,欢迎关注公众号:bin的技术小屋

https://static001.geekbang.org/infoq/33/334816312ed18f4cb1375cf262903232.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

面试常见 IO 问答知识点

用户头像
浅羽技术
2022-08-29

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIOBIO

https://static001.geekbang.org/infoq/4e/4ebe3d331aa788bc0ceddaa2bff69ad1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一步一图带你深入剖析 JDK NIO ByteBuffer 在不同字节序下的设计与实现

在前面 Netty 源码解析系列 《聊聊 Netty 那些事儿》中,笔者带领大家从宏观世界详细剖析了 Netty 的整个运转流程。从一个网络数据包在内核中的收发过程开始聊起,总体介绍了 Netty 的 IO 线程模型,后面我们围绕着这个 IO 模型又详细介绍了整个 Reactor 模型

https://static001.geekbang.org/infoq/be/be2eb09a78dcd9f187cbcffbfb0bf382.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

计算机编码规则之:Base64 编码

用户头像
程序那些事
2022-03-21

我们知道计算机中的文件可以分为两种,一种是人肉眼可读的文本类文件,一种是肉眼不可读的二进制文件。一般来说二进制文件如果用文本编辑器打开的话会显示乱码,并且二进制文件和文本文件的存储和传输方式是不一样的,那么有没有什么办法将二进制文件转换成为

https://static001.geekbang.org/infoq/e1/e17d58003b2d779a136589b982bc69b5.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

java 高级用法之: 调用本地方法的利器 JNA

用户头像
程序那些事
2022-03-09

JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做java native interface。要想使用JNI,我们需要在JAVA代码中定义native方法,然后通过javah命令创建C语言的头文件,接着使用C或者C++语言来实现这个头文件中的方法,编译源代码,最后将编译后

https://static001.geekbang.org/infoq/82/82e9575acf30f1a5c1a36610b2cde74c.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

高级 IO 模型之 kqueue 和 epoll

用户头像
程序那些事
2022-03-04

任何一个程序都离不开IO,有些是很明显的IO,比如文件的读写,也有一些是不明显的IO,比如网络数据的传输等。那么这些IO都有那些模式呢?我们在使用中应该如何选择呢?高级的IO模型kqueue和epoll是怎么工作的呢?一起来看看吧。

https://static001.geekbang.org/infoq/b0/b092714804d13483340e4a34314ca967.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

网络标准之:IANA 定义的传输编码

用户头像
程序那些事
2022-02-28

不同的系统或者协议可以接受的数据类型是不同的,如果要在那些不支持现有数据格式的系统或者协议中进行数据传输的话,就需要进行数据转换。

https://static001.geekbang.org/infoq/c4/c4636cec6123cf2fbb4a7808e1159340.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之:EventLoop,EventLoopGroup 和 netty 的默认实现

用户头像
程序那些事
2022-02-23

在netty中不管是服务器端的ServerBootstrap还是客户端的Bootstrap,在创建的时候都需要在group方法中传入一个EventLoopGroup参数,用来处理所有的ServerChannel和Channel中所有的IO操作和event。

https://static001.geekbang.org/infoq/22/22ec217692f3dcd47990ee604f6f5d3f.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

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

https://static001.geekbang.org/infoq/82/82e9575acf30f1a5c1a36610b2cde74c.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之:channelHandlerContext 详解

用户头像
程序那些事
2022-02-18

我们知道ChannelHandler有两个非常重要的子接口,分别是ChannelOutboundHandler和ChannelInboundHandler,基本上这两个handler接口定义了所有channel inbound和outbound的处理逻辑。

https://static001.geekbang.org/infoq/fa/faf6287650bca8cb9bcb85f7d0e8e9dc.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之:channel,ServerChannel 和 netty 中的实现

用户头像
程序那些事
2022-02-11

我们知道channel是netty中用于沟通ByteBuf和Event的桥梁,在netty服务的创建过程中,不管是客户端的Bootstrap还是服务器端的ServerBootstrap,都需要调用channel方法来指定对应的channel类型。

https://static001.geekbang.org/infoq/a0/a0ebf34336c8bc607e6fa08c0612e6b5.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文聊透 Netty 核心引擎 Reactor 的运转架构

介绍了Reactor整体的运行框架,Reactor核心的工作模块的具体实现逻辑。Reactor如何轮询注册在其上的所有Channel上感兴趣的IO事件,以及Reactor如何去处理IO就绪的事件,如何执行异步任务和定时任务。最后介绍了Netty如何巧妙的绕过JDK NIO Epoll空轮询的BUG

https://static001.geekbang.org/infoq/ac/ac503bc9d1fb9e79e4258f9e0a31c750.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之: 不用怀疑,netty 中的 ByteBuf 就是比 JAVA 中的好用

用户头像
程序那些事
2022-01-17

netty作为一个优秀的的NIO框架,被广泛应用于各种服务器和框架中。同样是NIO,netty所依赖的JDK在1.4版本中早就提供nio的包,既然JDK已经有了nio的包,为什么netty还要再写一个呢?

https://static001.geekbang.org/infoq/6a/6a5a2bcab2dd18224d704d5b18a8396b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现 (创建篇)

本文介绍了netty对各种IO模型的支持,以及主从Reactor模型的骨架在netty中的创建过程,还有netty对JDK NIO 原生的Selector的优化

https://static001.geekbang.org/infoq/65/659cd77e7fecd18926b203bfa4ccd319.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

聊聊 Netty 那些事儿之从内核角度看 IO 模型

IO模型的选择是构建一个高性能网络框架的基础,我们来分别从内核空间和用户空间的角度来一起探讨下五种IO模型和两种IO线程模型的实现

Reactor 模式和 Java NIO

用户头像
Java·课代表
2021-12-26

本文先从基本的Socket编程模式说起,介绍了Java传统的同步阻塞IO网络编程的基本实现,以及存在的性能问题,从而引出Reactor设计模式,最后通过Java NIO给出单Reactor单线程的实现方案。

https://static001.geekbang.org/infoq/db/db25d5e27c208bdfd80a95991bca5e9d.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之: 一口多用, 使用同一端口运行不同协议

用户头像
程序那些事
2021-12-22

在之前的文章中,我们介绍了在同一个netty程序中支持多个不同的服务,它的逻辑很简单,就是在一个主程序中启动多个子程序,每个子程序通过一个BootStrap来绑定不同的端口,从而达到访问不同端口就访问了不同服务的目的。

https://static001.geekbang.org/infoq/e9/e93a3d57018d779060c805f39a4b0903.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

netty 系列之: 一个价值上亿的网站速度优化方案

用户头像
程序那些事
2021-12-10

其实软件界最赚钱的不是写代码的,写代码的只能叫马龙,高级点的叫做程序员,都是苦力活。那么有没有高大上的职业呢?这个必须有,他们的名字就叫做咨询师。

https://static001.geekbang.org/infoq/9f/9f59304940b659e814cf6cd217a02ab5.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

JavaIO 流核心模块与基本原理

用户头像
知了一笑
2021-11-09

IO技术在JDK中算是极其复杂的模块,其复杂的一个关键原因就是IO操作和系统内核的关联性,另外网络编程,文件管理都依赖IO技术,而且都是编程的难点,想要整体理解IO流,先从Linux操作系统开始。

netty 系列之: 搭建自己的下载文件服务器

用户头像
程序那些事
2021-09-03

简介上一篇文章我们学习了如何在netty中搭建一个HTTP服务器,讨论了如何对客户端发送的请求进行处理和响应,今天我们来讨论一下在netty中搭建文件服务器进行文件传输中应该注意的问题。

Java NIO 在接口自动化中应用

用户头像
FunTester
2021-08-24

在上期的文章插上NIO翅膀,FunTester飞上天中,我学习了Java NIO的相关基础,今天我来分享一下自己实践的结果。

netty 系列之:netty 中的懒人编码解码器

用户头像
程序那些事
2021-08-20

netty之所以强大,是因为它内置了很多非常有用的编码解码器,通过使用这些编码解码器可以很方便的搭建出非常强大的应用程序,今天给大家讲讲netty中最基本的内置编码解码器。

Magician has released a new version

This update is mainly to upgrade Magician-Web and Magician-JDBC.

插上 NIO 翅膀,FunTester 飞上天

用户头像
FunTester
2021-08-17

在前段时间对性能测试框架对比的文章中,我又重新学习了Java NIO知识的学习,又发掘了一项FunTester优化,说干就干,现在就行动起来。

netty 系列之: 对聊天进行加密

用户头像
程序那些事
2021-08-15

简介在之前的文章中,我们讲到了怎么使用netty建立聊天室,但是这样的简单的聊天室太容易被窃听了,如果想要在里面说点悄悄话是很不安全的,怎么办呢?学过密码学的朋友可能就想到了一个解决办法,聊天的时候对消息加密,处理的时候再对消息解密即可。

nio_nio技术文章_InfoQ写作社区