原创 深入理解Linux VFS和Page Cache

 戳藍字「TopCoder」關注我們哦!編者注:在分析完 Linux inode 基礎概念 之後,讓我們看下inode在內存中對應的文件系統抽象VFS,然後分析下關於 磁盤操作 中Page Cache的回寫策略。VFS(虛擬文件系統層)

原创 磁盤操作那些事

 戳藍字「TopCoder」關注我們哦!編者注:日常開發中,大多數同學可能都不太關注應用程序的底層基石-磁盤的存在,但是磁盤作爲計算機的底層存儲,重要性不言而喻,操作系統的啓動程序就是存在在磁盤的開始位置上的,並且很多優秀的開源框架都會

原创 Linux inode 基礎概念

 戳藍字「TopCoder」關注我們哦!在理解inode之前,先了解下磁盤扇區,磁盤的最小單位,我們都知道,磁盤一個扇區是512個字節。磁盤讀寫是都是按照塊來操作的,一個塊一般是4K,也就是連續的8個扇區,以塊爲單位讀寫是爲了提高性能。

原创 Transmittable-Thread-Local:阿里開源的線程間上下文傳遞解決方案

 戳藍字「TopCoder」關注我們哦!TTL(transmittable-thread-local)是一個線程間傳遞ThreadLocal,異步執行時上下文傳遞的解決方案。整個庫的核心是構建在TransmittableThreadLo

原创 線程池如何傳遞線程上下文信息

 戳藍字「TopCoder」關注我們哦!業務開發中,一般都會使用ThreadLocal保存一些上下文信息,但是在線程池中執行對應邏輯時,由於是不同線程所以無法獲取之前線程的上下文信息。線程池的線程上下文傳遞,實現方案就是在提交任務時記錄

原创 Java併發工具那些事兒

 戳藍字「TopCoder」關注我們哦!Java併發工具類主要有CyclicBarrier、CountDownLatch、Semaphore和Exchanger,日常開發中經常使用的是CountDownLatch和Semaphore。下

原创 Netty ByteBuf原理剖析

 戳藍字「TopCoder」關注我們哦!編者注:緩衝區在計算機世界中隨處可見,內存中的多級緩衝區,io設備的緩衝區等等,還有我們經常用的內存隊列,分佈式隊列等等。緩衝區,平衡了數據產生方和數據消費方的處理效率差異,提高了數據處理性能。J

原创 如何優雅地執行dubbo"單測"

 戳藍字「TopCoder」關注我們哦!很多小夥伴所在的公司是基於Dubbo來構建技術棧的,日常開發中必不可少要寫dubbo單測(單元測試),如果單測數據依賴已有的外部dubbo服務,一般是mock數據,如果數據比較複雜,其實mock數

原创 influxdb原理那些事

 戳藍字「TopCoder」關注我們哦!編者注:InfluxDB是一個開源的時序數據庫,使用GO語言開發,特別適合用於處理和分析資源監控數據這種時序相關數據。而InfluxDB自帶的各種特殊函數如求標準差,隨機取樣數據,統計數據變化比等

原创 Docker容器網絡通信的那些事兒

 戳藍字「TopCoder」關注我們哦!編者注:Docker是基於go語言開發,Linux下的底層技術主要基於cgroups、namespace以及聯合文件技術實現的一種進程級別的輕量級虛擬化解決方案。由於Docker進程隔離獨立於宿主

原创 徹底搞懂 netty 線程模型

 戳藍字「TopCoder」關注我們哦!編者注:Netty是Java領域有名的開源網絡庫,特點是高性能和高擴展性,因此很多流行的框架都是基於它來構建的,比如我們熟知的Dubbo、Rocketmq、Hadoop等。本文就netty線程模型

原创 Netty 啓動流程解析

 戳藍字「TopCoder」關注我們哦!編者注:Netty是Java領域有名的開源網絡庫,特點是高性能和高擴展性,因此很多流行的框架都是基於它來構建的,比如我們熟知的Dubbo、Rocketmq、Hadoop等,針對高性能RPC,一般都

原创 Linux Cgroup淺析

 戳藍字「TopCoder」關注我們哦!編者注:cgroup從2.6.4引入linux內核主線,目前默認已啓用該特性。在cgroup出現之前,只能對一個進程做資源限制,比如通過sched_setaffinity設置進程cpu親和性,使用

原创 Netty 入門,這一篇文章就夠了

 戳藍字「TopCoder」關注我們哦!編者注:Netty是Java領域有名的開源網絡庫,特點是高性能和高擴展性,因此很多流行的框架都是基於它來構建的,比如我們熟知的Dubbo、Rocketmq、Hadoop等,針對高性能RPC,一般都

原创 Java nio 空輪詢bug到底是什麼

 戳藍字「TopCoder」關注我們哦!編者注:Java nio 空輪詢bug也就是Java nio在Linux系統下的epoll空輪詢問題。epoll機制是Linux下一種高效的IO複用方式,相較於select和poll機制來說。其高