tag nio

標籤
貢獻21
81
04:10 AM · Nov 05 ,2025

@nio / 博客 RSS 訂閱

flydean - netty系列之:netty初探

簡介 我們常用瀏覽器來訪問web頁面得到相關的信息,通常來説使用的都是HTTP或者HTTPS協議,這些協議的本質上都是IO,客户端的請求就是In,服務器的返回就是Out。但是在目前的協議框架中,並不能完全滿足我們所有的需求。比如使用HTTP下載大文件,可能需要長連接等待等。 我們也知道IO方式有多種多樣的,包括同步IO,異步IO,阻塞IO和非阻塞IO等。不同的IO方式其性能也是不同的,而ne

netty , JAVA , reactivex , 響應式 , nio

收藏 評論

京東雲開發者 - JVM説--直接內存的使用

作者:京東物流 劉作龍 前言: 學習底層原理有的時候不一定你是要用到他,而是學習他的設計思想和思路。再或者,當你在日常工作中遇到棘手的問題時候,可以多一條解決問題的方式 分享大綱: 本次分享主要由io與nio讀取文件速度差異的情況,去了解nio為什麼讀取大文件的時候效率較高,查看nio是如何使用直接內存的,再深入到如何使用直接內存 1 nio與io讀寫文件的效率比對 首先上代碼,有興

內存 , jvm , 虛擬機 , JAVA , nio

收藏 評論

杜若 - Netty源碼-業務流程之寫數據

Netty基本介紹,參考 Netty與網絡編程 1、源碼分析,EchoServerHandler之Write流程 1.1 write流程入口 通常我們通過ChannelRead收到消息後,需要給一個響應,通過ctx.write()將響應返回客户端。 在自定義handler的channelRead方法打一個斷點,客户端發起請求,並進入ctx.write 1.2 AbstractChannelHa

netty , nio

收藏 評論

journey - 大話網絡通信

1、術語 併發 vs 並行 併發和並行是相關的概念,但有一些小的區別。併發意味着兩個或多個任務正在取得進展,即使它們可能不會同時執行。例如,這可以通過時間切片來實現,其中部分任務按順序執行,並與其他任務的部分混合。另一方面,當執行的任務可以真正同時進行時,就會出現並行 簡單説啓動一個線程在一個core上就是並行,啓動兩個線程在一個core上就是併發 異步 vs 同步 如果調用者

同步 , bios , nio , 異步

收藏 評論

山間小僧 - 「NIO源碼」JavaNIO源碼 & JNI分析二:Java NIO源碼分析

沒看過的建議先看上一篇,本來打算講講linux內核,也看了一些書籍,可是c放了太久了,看代碼實在頭疼,就先放棄了,寫寫業務也沒必要卷這麼深吧。就講到調用底層api為止我覺得剛剛好。不太擅長將源碼結合講故事,所以整片略顯枯燥,將就看下吧~~ demo public class ServerConnect { public static void main(String[] args)

源碼學習 , nio

收藏 評論

北冥有隻魚 - 用Java來實現BIO和NIO模型的HTTP服務器(二) NIO的實現

翻了一下(一)發現整體還是不大好, 這裏重新再梳理一下 前言 這是一個系列的文章,按照規劃是用Java標準庫、Netty來實現一個非常簡單的HTTP服務器,HTTP服務器我們可以使用Java標準庫提供的api,實現BIO、NIO模型的HTTP服務器,然後再用Netty實現,前一篇我們寫的類在這一篇還可以用到,讓我們回憶一下上一篇我們講了什麼,我們回顧了通信的發展史,從最開始的點對點鏈路,到總線鏈路

JAVA , nio

收藏 評論

湯卜 - 請求在tomcat源碼中的流轉(源碼分析篇)

Connector的初始化 catalina解析server.xml是通過degister來實現的,degister解析到Connector標籤後做的事情如下代碼所見 ConnectorCreateRule @Override public void begin(String namespace, String name, Attributes attributes)

tomcat , 架構 , 源碼分析 , JAVA , nio

收藏 評論

flydean - Java IO 與 NIO:高效的輸入輸出操作探究

引言 輸入輸出(IO)是任何編程語言中的核心概念,而在Java中,IO操作更是應用程序成功運行的基石。隨着計算機系統變得越來越複雜,對IO的要求也日益增加。在本文中,我們將探討Java IO和非阻塞IO(NIO)的重要性以及如何在Java中實現高效的輸入輸出操作。 傳統IO(阻塞IO) 傳統IO是大多數開發人員熟悉的IO模型,其中主要涉及InputStream和OutputStream。通過傳統I

面試 , JAVA , io , nio

收藏 評論

cyl173 - 【後端面經-Java】I/O多路複用 簡錄

0. Java 線程IO模型 Java當中的線程I/O模型如圖所示: 1. BIO 當一個線程進行I/O操作的時候,傳統的做法是阻塞等待,直到I/O操作完成再繼續後續的操作,這種IO方式就是BIO(Blocking I/O)。 BIO方式的缺點是: 大量併發線程的場景下效率過低; 空等待浪費資源; 2. NIO JDK1.4引入了NIO(No Blocking I/O或者是New

面試 , JAVA , nio , 後端

收藏 評論

mikechen - Java NIO全面詳解(看這篇就夠了)

很多技術框架都使用NIO技術,學習和掌握Java NIO技術對於高性能、高併發網絡的應用是非常關鍵的@mikechen NIO簡介 NIO 中的 N 可以理解為 Non-blocking,不單純是 New,是解決高併發、I/O高性能的有效方式。 Java NIO是Java1.4之後推出來的一套IO接口,NIO提供了一種完全不同的操作方式, NIO支持面向緩衝區的、基於通道的IO操作。 新增了許多

JAVA , 架構師 , nio

收藏 評論

京東雲開發者 - Java NIO 圖解 Netty 服務端啓動的過程 | 京東雲技術團隊

一.啓動概述 瞭解整體Netty常用的核心組件後,並且對比了傳統IO模式。在對比過程中,找到了傳統IO對應Netty中是如何實現的。最後我們瞭解到在netty中常用的那些組件。 本文在瞭解下這些核心組件的前提下,進一步瞭解組件如何在整個服務器啓動過程如何被創建,如何組件之間配合來使用。首先也是先了解下大概服務端的啓動過程,並且在瞭解過程中我們帶着自己的問題去在學習過程中探尋答案。 1.1

netty , JAVA , nio , 後端

收藏 評論

bin的技術小屋 - 一文聊透 Netty 核心引擎 Reactor 的運轉架構

本系列Netty源碼解析文章基於 4.1.56.Final版本 本文筆者來為大家介紹下Netty的核心引擎Reactor的運轉架構,希望通過本文的介紹能夠讓大家對Reactor是如何驅動着整個Netty框架的運轉有一個全面的認識。也為我們後續進一步介紹Netty關於處理網絡請求的整個生命週期的相關內容做一個前置知識的鋪墊,方便大家後續理解。 那麼在開始本文正式的內容之前,筆者先來帶着大家回

rpc , netty , JAVA , nio , 後端

收藏 評論

博學谷狂野架構師 - 讓我對象告訴你什麼是IO、NIO、BIO

1、Stream 與 Channel stream 不會自動緩衝數據,channel 會利用系統提供的發送緩衝區、接收緩衝區(更為底層) stream 僅支持阻塞 API,channel 同時支持阻塞、非阻塞 API,網絡 channel 可配合 selector 實現多路複用 二者均為全雙工,即讀寫可以同時進行 雖然 Stream 是單向流動的,但是它也是全雙工的 2、IO 模型

netty入門 , netty , JAVA , nio , 後端

收藏 評論

bin的技術小屋 - 詳細圖解Netty Reactor啓動全流程 | 萬字長文 | 多圖預警

歡迎關注公眾號:bin的技術小屋,閲讀公眾號原文 本系列Netty源碼解析文章基於 4.1.56.Final版本 大家第一眼看到這幅流程圖,是不是腦瓜子嗡嗡的呢? 大家先不要驚慌,問題不大,本文筆者的目的就是要讓大家清晰的理解這幅流程圖,從而深刻的理解Netty Reactor的啓動全流程,包括其中涉及到的各種代碼設計實現細節。 在上篇文章《聊聊Netty那些事兒之Reactor在Ne

網絡編程 , rpc , netty , JAVA , nio

收藏 評論

阿東 - 【Java】A Guide to the Java ExecutorService

引言 中文翻譯是ExecutorService使用指南,整體看下來入門但是能通過本文快速概覽和學習Executors的使用。 ExecutorService是JDK的一個API,它簡化了異步模式下的任務運行。一般來説,ExecutorService會自動提供一個線程池和一個用於向其分配任務的API。 1. Java ExecutorService 指南 A Guide to the Java Ex

executorservice , nio

收藏 評論

大數據王小皮 - 【Java基礎】NIO 初步瞭解

NIO(Non-blocking I/O,在 Java 領域,也稱為 New I/O),是一種同步非阻塞的I/O模型,也是I/O多路複用的基礎。那和普通 IO 有什麼區別呢? 一、概述 NIO 是從 Java 1.4 版本開始引入的一個新的 IO API,NIO 支持面向緩衝區的、基於通道的 IO 操作。 原來的 IO 是阻塞式 IO,與 NIO 的對比: IO NI

JAVA , nio

收藏 評論

bin的技術小屋 - 抓到 Netty 一個 Bug ,順帶來透徹地聊一下 Netty 是如何高效接收網絡連接的

歡迎關注公眾號:bin的技術小屋,閲讀公眾號原文 本系列Netty源碼解析文章基於 4.1.56.Final版本 對於一個高性能網絡通訊框架來説,最最重要也是最核心的工作就是如何高效的接收客户端連接,這就好比我們開了一個飯店,那麼迎接客人就是飯店最重要的工作,我們要先把客人迎接進來,不能讓客人一看人多就走掉,只要客人進來了,哪怕菜做的慢一點也沒關係。 本文筆者就來為大家介紹下netty這塊最

rpc , netty , JAVA , nio , 後端

收藏 評論

bin的技術小屋 - 一步一圖帶你深入剖析 JDK NIO ByteBuffer 在不同字節序下的設計與實現

讓我們來到微觀世界重新認識 Netty 在前面 Netty 源碼解析系列 《聊聊 Netty 那些事兒》中,筆者帶領大家從宏觀世界詳細剖析了 Netty 的整個運轉流程。從一個網絡數據包在內核中的收發過程開始聊起,總體介紹了 Netty 的 IO 線程模型,後面我們圍繞着這個 IO 模型又詳細介紹了整個 Reactor 模型在 Netty 中的實現。 這個宏觀流程包括:Reactor模型的創建,啓

netty , buffer , JAVA , nio , 字節序

收藏 評論

京東雲開發者 - Redis 異步客户端選型及落地實踐

作者:京東科技 王晨 Redis異步客户端選型及落地實踐 可視化服務編排系統是能夠通過線上可視化拖拽、配置的方式完成對接口的編排,可在線完成服務的調試、測試,實現業務需求的交付,詳細內容可參考:https://mp.weixin.qq.com/s/5oN9JqWN7n-4Zv6B9K8kWQ。 為了支持更加廣泛的業務場景,可視化編排系統近期需要支持對緩存的操作功能,為保證編排系統的性能,服務的執行

redis , keyvaluepair , 客户端 , 數據庫 , nio

收藏 評論

Rylan - Java Nio Example

selector模型 使用一個線程去監控多個IO請求,如果哪一個IO數據準備完畢後就通知相應的線程來處理 select模型,它的基本原理是採用輪詢和遍歷的方式。也就是説,在客户端操作服務器時,會創建三種文件描述符,簡稱FD。分別是writefds(寫描述符)、readfds(讀描述符)和 exceptfds(異常描述符) demo,讓主線程監聽IO事件然後進行處理 server public c

JAVA , socket編程 , nio

收藏 評論

用户bPcVmzR - io的基本原理-nio

I/O(Input/Output)是計算機科學中指計算機和外部設備進行數據交換的過程。I/O模型是指用於管理進程和設備之間數據傳輸的技術。 io讀寫的基本原理 操作系統將內存(虛擬內存)劃分為兩部分:一部分是內核空間(Kernel-Space),另一部分是用户空間(User-Space) 應用程序不允許直接在內核空間區域進行讀寫,也不允許直接調用內核代碼定義的函數。每個應用程序進程都有一個單

io , nio

收藏 評論

蘇凌峯 - Netty網絡編程——NIO與零拷貝

1.什麼是DMA 2.什麼是用户態和內核態 3.普通BIO的拷貝流程分析 4.mmap系統函數 5.sendFile系統函數(零拷貝) 6.java堆外內存如何回收 1.什麼是DMA DMA(Direct Memory Access直接存儲器訪問),我們先從一張圖來了解一下DMA是一個什麼裝置。 假設在什麼沒有DMA的情況下,如果CPU想從內存裏讀取數據併發送到網卡中,在讀的過程中,我們可以知

mmap , nio

收藏 評論

我丁上你了 - java.nio.BufferOverflowException異常解決辦法

異常 java.nio.BufferOverflowException java.base/java.nio.HeapByteBuffer.put(HeapByteBuffer.java:231) 問題描述 我遇到的問題是在put的時候出現的異常,因為字符串包含中文,使用了字符串的字符長度分配容量。 異常描述 BufferOverflowException 錯誤表明嘗試向緩衝區寫入的數

buffer , JAVA , 異常處理 , nio , 後端

收藏 評論

得物技術 - 彩虹橋架構演進之路-性能篇

一、前言 一年前的《彩虹橋架構演進之路》側重探討了穩定性和功能性兩個方向。在過去一年中,儘管業務需求不斷增長且流量激增了數倍,彩虹橋仍保持着零故障的一個狀態,算是不錯的階段性成果。而這次的架構演進,主要分享一下近期針對性能層面做的一些架構調整和優化。其中最大的調整就是 Proxy-DB 層的線程模式從 BIO 改造成了性能更好的 NIO。下面會詳細介紹一下具體的改造細節以及做了哪些優化。 閲讀本文

中間件 , 高性能 , 數據庫 , nio

收藏 評論