原创 Netty-服務端接收不到客戶端發送消息案例

得益於高性能、低時延的優勢,Netty被廣泛應用於物聯網領域,用於海量終端設備的協議接入、消息收發和數據處理。 當服務端出現性能瓶頸或者阻塞時,就會導致終端設備連接超時和掉線,引發各種問題,因此在物聯網場景下,一定要防止服務端代

原创 Netty-什麼是串行無鎖化?

爲儘可能提升性能,Netty中有提到一個串行無鎖化概念。 什麼是串行無鎖化?      NioEventLoop維護了一個任務隊列,隊列在創建NioEventLoop時被初始化,是用來實現串行無鎖化的載體。 //Single

原创 RabbitMQ入門-AMQP協議

   RabbitMQ和AMQP    AMQP生產者流轉過程    AMQP消費者流轉過程    RabbitMQ和AMQP      RabbitMQ遵從AMQP協議,AMQP的模型架構和RabbitMQ的模型架構是一樣的,

原创 Netty-併發失效案例之DefaultEventExecutorGroup特性

爲了提升性能,如果用戶實現的ChannelHandler包含複雜或者可能導致同步阻塞的業務邏輯,往往需要通過線程池來提升併發能力,線程池添加有兩種策略:用戶自定義線程池執行業務ChannelHandler,以及通過Netty的E

原创 線程池的三種阻塞隊列

三種阻塞隊列:    SynchronousQueue    ArrayBlockingQueue    LinkedBlockingQueue SynchronousQueue      無緩衝無界等待隊列,超出核心線程個數

原创 RabbitMQ入門-相關概念介紹

   生產者和消費者    隊列    交換器、路由鍵、綁定    RabbitMQ運轉流程    連接和信道    生產者和消費者      生產者:Producer生產者,消息投遞方。      生產者創建消息,然後發佈到R

原创 Netty-DefaultEventExecutor工作機制

   DefaultEventExecutor源碼    業務線程池優化策略    Netty線程綁定機制原理 DefaultEventExecutor源碼      DefaultEventExecutor是JDK線程池Exe

原创 JAVA-文件操作工具類

文件操作工具類 /******************************************** * 文件操作工具類 * * @author p.ww ****************************

原创 Netty-流量整形注意事項

上一篇:流量整形工作機制    1. 併發編程在流量整形中的使用       1.1 volatile的使用       1.2 減小鎖的範圍       1.3 原子類    2. 相關注意事項       2.1 chann

原创 Netty-流量整形工作機制

   流量整形工作原理及源碼分析       消息讀取的流量整形       消息發送流量整形 流量整形工作原理及源碼分析      流量整形工作原理:攔截channelRead()和write()方法,計算當前需要發送的消息大

原创 Netty-流量整形實踐

當系統負載壓力比較大時,系統進入過負荷狀態,可能是CPU、內存資源已經過載,也可能是應用進程內部的資源幾乎耗盡,如果繼續全量處理業務,可能會導致長時間的Full GC、消息嚴重積壓或者應用進程宕機,最終將壓力轉移到集羣中的其他節

原创 Netty-ByteBuf實現機制

      應用在進行數據傳輸時,往往需要使用緩衝區,最常用的緩衝區就是JDK NIO類庫提供的java.nio.Buffer。由於JDK原生的Buffer存在一些缺點,Netty提供了自己的ByteBuffer實現(ByteB

原创 Netty-消息發送工作機制

業務調用write後,經過ChannelPipeline職責鏈處理,消息被投遞到消息發送緩衝區待發送,調用flush之後會執行真正的發送操作,底層通過調用Java NIO的SocketChannel進行非阻塞write操作,將消

原创 線程池的4種拒絕策略

四種拒絕策略:    AbortPolicy    CallerRunsPolicy    DiscardPolicy    DiscardOldestPolicy AbortPolicy      默認拒絕策略,丟棄任務並觸發

原创 Netty-ChannelHandler併發安全分析

ChannelHandler是Netty中使用最廣的接口,Netty提供了大量內置的ChannelHandler實現類,包括編解碼、SSL、日誌打印等等。用戶通過實現ChannelHandler接口,來接口和發送業務消息,並進行