原创 分佈式一致性算法-paxos介紹

概述 Paxos算法是Lamport創造基於消息傳遞的一致性算法,包括Google的Chubby在內很多系統都應用了Paxos算法,Google Chubby[1]有下面的描述: all working protocols for

原创 分佈式系統的事務處理幾種常見方法

看到耗子叔這篇對於分佈式事務處理的幾種方式寫的很清晰,原文:https://coolshell.cn/articles/10910.html 當我們在生產線上用一臺服務器來提供數據服務的時候,我會遇到如下的兩個問題: 1)一臺服務器

原创 【Mybatis學習】查詢映射過程解析

1.功能架構 Mybatis的功能架構分爲三層: (1)API接口層:提供給外部使用的接口API,比如dao層接口。 (2)數據處理層:負責具體的SQL查找、SQL解析、SQL執行和執行結果映射處理等。它主要的目的

原创 RPC原理介紹

面向服務架構SOA 任何大型網站的發展都伴隨着網站架構的演進。網站架構一般最初是單應用設計,然後逐漸經歷面向對象設計和模塊化設計的架構,最終發展到面向服務的服務化架構。在單應用設計架構體系當中,我們關注的是方法和實體;而在面向服務的服

原创 groovy腳本導致FullGC問題排查

背景:  應用中內嵌了groovy引擎,會動態執行傳入的表達式並返回執行結果  線上問題: 發現機器的fullGC從某個時候開始暴漲,並且一直持續;登到機器上,用jstat -gcutil 命令觀察,發現perm區一直是100%,fu

原创 一次線上服務fullGC原因排查

一、現象 早上九點多又收到了fullGC次數過高的應用監控告警{P1}{故障}JVM Old GC all(#3) full_gc_count  >5}{當前值:28},通過公司使用的監控平臺可以觀察到服務器在這個時間段內確實出現了一些異

原创 【MyBatis學習】使用講解

MyBatis是一個輕量級的ORM框架,它簡化了對關係數據庫的使用,開發人員可以在XML或註解中編寫SQL來完成對數據庫的操作,配置與使用簡單,由於是手動寫SQL,可控性好,便於SQL調優,而且如果完全使用XML方式,SQL語句可以集中

原创 【Java多線程】CountDownLatch、CyclicBarrier和Semaphore使用

1.CountDownLatch的用法 CountDownLatch類位於java.util.concurrent包下,利用它可以實現類似計數器的功能。比如有一個任務A,它要等待其他4個任務執行完畢後才能執行,此時就可以利用Co

原创 【Java多線程】Callable、Future與FutureTask的使用

背景 java中有兩個創建線程的方式,一種是直接繼承Thread,另外一種就是實現Runnable接口。 這2種方式都有一個缺陷就是:在執行完任務之後無法獲取執行結果。 如果需要獲取執行結果,就必須通過共享變量或者使用線程

原创 【Java多線程】之ThreadLocal分析

1.對ThreadLocal的理解 ThreadLocal,也叫線程本地變量或線程本地存儲。ThreadLocal爲變量在每個線程中都創建了一個副本,那麼每個線程可以訪問自己內部的副本變量。我們先來看一個例子: class Conn

原创 Java集合的精華總結

  在儘可能短的篇幅裏,將所有集合與併發集合的特徵、實現方式、性能捋一遍。適合所有"精通Java",其實還不那麼自信的人閱讀。   期望能不止用於面試時,平時選擇數據結構,也能考慮一下其成本與效率,不要看着API合適就用了。  

原创 閉包簡介

1. 何爲閉包 在學習函數式語言、動態語言時會經常接觸到一個概念——閉包,例如python、scala中都有對閉包的支持。 翻看網上各種資料,對於閉包的解釋都比較晦澀、學術。 比如百科中這段解釋:“在計算機科學中,閉包(Closu

原创 Java序列化與反序列化

一、序列化和反序列化 序列化:把對象或數據結構轉換爲字節序列 反序列化:把字節序列恢復爲對象或數據結構 當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網絡上傳送。發送方需要把這個J

原创 NASA的10條代碼編寫原則

英文原文:NASA’s 10 Coding Rules for Writing Safety Critical Program   美國宇航局(National Aeronautics and Space Administration

原创 JVM啓動參數推薦

在關鍵的業務系統裏,除了繼續追求技術人員最愛的高吞吐與低延時之外,系統的穩定性與出現問題時排查的便捷性也很重要。看到 白衣16年的這篇文章總結的很全面,轉載學習下,原文:《關鍵業務系統的JVM啓動參數推薦》http://calvin1