原创 Netty面試指北

基礎 1、tcp(握手和揮手)和udp 參考https://www.cnblogs.com/fundebug/p/differences-of-tcp-and-udp.html 2、BIO、NIO、AIO 參考https://bl

原创 SQL優化手冊

SQL優化手冊 1、in vs or 對索引字段或非索引字段單個值操作時,兩者無異;但是對非索引字段多個值操作,相比in,or效率會隨着值的個數增加效率相對下滑 2、group by vs distinct 案例:統計學生表不重複

原创 Java面試手冊筆記

1、如何在兩個線程間共享數據 通過在線程之間共享對象就可以了,然後通過wait/notify/notifyAll、await/signal/signalAll進行喚起和 等待,比方說阻塞隊列BlockingQueue就是爲線程之間

原创 web session

web session sessionid是一個會話的key,瀏覽器第一次訪問服務器會在服務器端生成一個session,有一個sessionid和它對應。tomcat生成的sessionid叫做jsessionid。 sessio

原创 (譯)Netty In Action第九章—單元測試

這章涵蓋一下內容 - 單元測試 - EmbeddedChannel概覽 - 使用EmbeddedChannel測試ChannelHandlers ChannelHandlers是Netty應用程序的重要因素,所以徹底測試它們

原创 (譯)Netty In Action第六章—channelhandler 和 channelpipeline

請尊重勞動成果,未經本人允許,拒絕轉載,謝謝! 這一章涵蓋以下內容: - ChannelHandler 和 ChannelPipeline的APIs介紹 - 資源泄漏檢測 - 異常處理 在前一章節你已經學習了ByteB

原创 (譯)Netty In Action第七章—事件循環和線程模型

請尊重勞動成果,未經本人允許,拒絕轉載,謝謝! 這章包涵以下內容 - 線程模型概覽 - 事件循環概念和實現 - 任務調度 - 實現細節 簡單地說,線程模型指定了OS、編程語言、框架或應用程序的上下文中的線程管理的關鍵方

原创 Netty從零RPC——基礎模塊搭建

前言 Dubbo是基於Netty搭建的RPC框架,爲了更好地理解Netty在Dubbo中的應用,仿照Dubbo搭建了一個簡易版的RPC框架。 概述 整個調用邏輯如下: 1、生產者服務端啓動Netty服務端。 2、消費者客戶端通過J

原创 (譯)Netty In Action第八章—Bootstrapping

這章涵蓋以下內容: - Bootstrapping客戶端和服務端 - 從Channel內bootstraping客戶端 - 增加ChannelHandlers - 使用ChannelOptions和屬性 已經深入學習了Ch

原创 Netty從零RPC——編解碼器

源碼地址:https://github.com/MAXAmbitious/netty-rpc 上一篇博文我們搭建了一個基礎的RPC框架,現在我們來實現基於Protostuff的Netty編解碼器。 爲啥要用Protostuff

原创 (轉)Linux IO模式及 select、poll、epoll詳解

Linux IO模式及 select、poll、epoll詳解

原创 Java面試手冊個人筆記

1、如何在兩個線程間共享數據 通過在線程之間共享對象就可以了,然後通過wait/notify/notifyAll、await/signal/signalAll進行喚起和 等待,比方說阻塞隊列BlockingQueue就是爲線程之間

原创 基於Retrofit2的java sdk封裝

Retrofit2架構全面解析 參考文章https://blog.csdn.net/qq_29152241/article/details/82177648,這篇文章詳細介紹了Retrofit2的源碼及架構,個人覺得非常不錯。 基

原创 windows下Apache.RocketMQ安裝部署

引文:windows下Apache.RocketMQ安裝部署 本文主要對引文中關於RocketMQ插件部署遇到的問題進行補充說明。 在部署RocketMQ插件時,執行maven指令mvn spring-boot:run時遇到org.a

原创 微信第三方平臺公衆號授權流程4-pre_auth_code

該API用於獲取預授權碼。預授權碼用於公衆號或小程序授權時的第三方平臺方安全驗證。 web層代碼如下: /** * 授權回調 * @param resp */ @RequestMapping(value = "/wech