原创 CAS與AQS源碼簡析

什麼是CAS? CAS(Compare And Swap),顧名思義就是比較並交換。用於解決多線程使用鎖帶來的性能損耗的問題,是一種非阻塞算法,其交換原理如下圖:       CAS用法: - 數據庫中的樂觀鎖:即表字段+ver

原创 《 Java併發編程的藝術》之Java中的鎖(第五章)

1 Lock接口 Lock和synchronized有何區別,區別在於synchronized是鎖一個代碼塊或一個方法,需要先獲取鎖再釋放鎖,可操作性比不上Lock。而Lock的可操作性在於我們可以像下面這樣操作: -------

原创 iframe跨域通信(postMessage)

iframe跨域通信(postMessage) 前言 ❝ 跨域,是指瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實施的安全限制。所謂同源是指相同的域名、協議和端口,只要其中一項不同就爲跨域 ❞

原创 短鏈接原理分析

參考鏈接: https://blog.csdn.net/weixin_37186559/article/details/84833108 爲什麼要用短鏈接? 原來的鏈接長度過長,發微博什麼之類展示也不好看。比如下面這串: https:

原创 簡述一次線上dubbo超時重複贈送問題

  產生問題 業務方反饋用戶贈送次數異常,經排查後發現存在重複的贈送記錄。   排查過程 然後進行排查,排查SQL爲: # 查出所有贈送有問題的的數據 select user_id,count(*) AS total from `xx

原创 View List與Sub View List設計規範

因公司業務發展,需要改造一個BI平臺Davinci。 考慮到davinci的View List中的View只是作爲一個寬表來進行設計的,無法將兩個View進行關聯。所以需要修改源碼。   可修改源碼,並將View劃分爲View和Sub

原创 JVM調優參數雜談

  配置爲: - jdk1.8 - 服務器:4核8G 開篇:本篇僅以博主觀念來講解JVM一般會用到的參數,不做線上實例的講解(因爲展開太多了(╬▔皿▔)凸)。   首先上來就是一套稍微全一點的jvm參數配置(建議一般3G的堆大小即可

原创 Tomcat版本與依賴衝突拋錯問題

某一天線上突然出現如下報錯(不影響應用啓動和訪問,但就是報錯了!!): 28-Feb-2020 23:44:45.149 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.cat

原创 線上nginx訪問日誌匹配處理及nginx限流簡單處理

今天部門開會提到了個問題,惡意刷接口怎麼處理?就當做是一個作業,去學會如何簡單的分析nginx日誌。   1 先看nginx日誌 # whereis nginx      //找到nginx目錄位置       2 進入訪問日誌目錄

原创 JVM簡單調優及工作中例子記錄

前序: Jvm調優需要我們對系統有所瞭解,其中比較關鍵的是對核心業務的理解,特別是會造成頻繁GC的部分,比如高併發造成的不及時回收。   要知道爲什麼會造成頻繁GC,首先我們要懂怎麼估算java類的大小 下面列舉各個基本類型和字符

原创 Netty源碼簡析之客戶端新連接接入

總結: Netty新連接註冊流程: Netty在服務端綁定NioEventLop,並輪詢到accept事件,服務端調用jdk底層accept()方法獲取客戶端channel,並且封裝成客戶端的NioSocketChannel。並且創

原创 Netty源碼簡析之NIOEventLoop解析

舉一個Netty服務端創建例子如下: EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoo

原创 Netty源碼簡析之初始化服務端Channel及Selector的註冊過程

這裏接着上文的《服務端Channel的創建》- https://blog.csdn.net/qq_28666081/article/details/102424327   初始化channel很簡單,直接看如下代碼: // Abstra

原创 什麼, 0.3 - 0.2 ≠ 0.1 ?

原文鏈接:https://juejin.im/post/5d67656ff265da03d316d502#heading-3 標籤: 公衆號文章 慘痛的歷史教訓 記得還在上學那會兒,給我們上《運

原创 聊一聊-JAVA 泛型中的通配符 T,E,K,V,?

原文鏈接:https://juejin.im/post/5d5789d26fb9a06ad0056bd9 參考自:https://juejin.im/post/5d5789d26fb9a06ad