原创 MySQL開發規範

MySQL開發規範 文章目錄MySQL開發規範一、命名規範二、基本規範三、庫表設計規範四、索引設計規範五、字段設計規範六、SQL設計規範七、行爲規範 一、命名規範 1、庫名、表名、字段名必須使用小寫字母並採用下劃線分割; 2、庫名、表

原创 Restfull API理解

Restfull APIRestFull瞭解階段編寫第一個restfull Api RestFull瞭解階段 發展分爲以下4個階段。 使用http作爲傳輸方式。 每個資源都有對應的url 使用http方法進行不同的操作,使用http

原创 Netty使用案例 -發送隊列積壓導致內存泄漏(二)

文章目錄發送隊列積壓導致內存泄漏其他可能導致發送消息隊列積壓的因素客戶端代碼改造Netty消息發送工作機制和源碼分析WriteAndFlushTask原理和源碼分析寫入發送源碼分析發送次數限制不同消息發送策略已發送消息內存釋放寫半包消

原创 Netty使用案例 -發送隊列積壓導致內存泄漏(一)

Netty發送隊列積壓案例 環境配置 //vm參數設置 -Xmx1000m -XX:+PrintGC -XX:+PrintGCDetails 對業務性能壓測,N個客戶端併發訪問服務端,客戶端基於Netty框架做網絡通信,壓測一段

原创 Netty使用案例 -HTTP協議棧中使用ByteBuf

使用Netty開發Restfull應用 Http服務端代碼 public class HttpServer { public static void main(String[] args) { HttpSe

原创 Netty使用案例 -堆外內存泄漏跟蹤

內存池ByteBuf泄漏沒有引起堆內存溢出 服務端代碼入下 public class RouterServerHandler extends ChannelInboundHandlerAdapter { static Exec

原创 常用JVM配置調試

JMV常用配置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:設置年輕代大小 -XX:NewRatio=n:設置年輕代和年老代的比值。如:爲3,表示年輕代與年老代比值爲1:3,年輕代佔整個年輕代年老代和的1/

原创 Netty使用案例 -客戶端連接池使用

將Netty強大的NIO當做BIO使用 設置啓動的poolSize爲150 先創建150個線程EventLoopGroup,這裏我設置JVM的參數爲 //由於用的是jdk8,所以好多數據會在元空間存放 -XX:MetaspaceSiz

原创 Netty使用案例 -優雅退出原理和源碼分析

Netty優雅退出涉及線程組,NIO線程,Channel和定時任務等,底層實現細節比較複雜。看看源碼是怎麼實現的。 NioEventLoopGroup NioEventLoopGroup實際上是NioEventLoop線程組,它的優雅

原创 Netty使用案例 -服務啓動退出

瞭解守護線程 守護線程是運行在程序後臺的線程。通常守護線程是由JVM創建,用於輔助用戶活着JVM工作,GC就是一個典型的守護線程。用戶也可以手動的創建守護線程。我們一般程序中使用的主線程不是守護線程,Daemon線程在java裏邊的定

原创 Java內存泄漏常見的代碼片段

目錄常見的內存泄漏使用底層包內存泄漏netty中內存泄漏日常代碼中內存泄漏匿名內部類非靜態內部類Handler內存泄漏集合中對象沒清理File等資源未關閉監聽器未關閉單例模式 常見的內存泄漏 內存泄漏一般情況不會有,但是有了不太好找。

原创 Spring表達式語言

Spring ExpressionSpring表達式語言簡單的表達式準備需要的測試類使用基本的表達式處理使用簡單對象處理類型裝換重構解析器配置properties, arrays, lists, maps屬性引用源碼分析 Spring

原创 互聯網系統建設那點事

互聯網你應該知道的互聯網的系統架構拆解+-應用系統應用服務系統數據服務層消息傳輸統一認證中心統一配置中心服務治理框架統一調度中心統一日誌服務統一監控中心鏈路跟蹤系統業務監控大數據分析實時數據分析離線數據分析數據即席分析 互聯網的系統架

原创 日常查看使用手冊

工具使用 corn 表達式生成器 json裝換工具 算法動態模擬 redis查詢工具 技術博客 阿里中間件團隊 本人GITHUB 代碼庫

原创 簡述JAVA使用責任鏈

責任鏈用在那些場景? 我們需要定義一篇處理請求的責任處理器,避免請求過來的處理請求的接收者過於耦合在一個處理邏輯中,將這個對象連成一條鏈,請求將沿着預先定義好的鏈進行傳遞,知道找到一個可以處理的對象責任處理器。 具體有以下幾個關鍵點: