原创 SpringCloud(3)之服務註冊與發現Eureka

一、spring cloud簡介 spring cloud爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等。它運行環境簡單,可以在開發人員的電腦上跑。另外

原创 JAVA源碼分析之HashMap 1.7

一、簡介 類定義: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serial

原创 個人總結(2)之基於jwt和session用戶認證的區別和優缺點

一、背景知識 Authentication和Authorization的區別: Authentication:用戶認證,指的是驗證用戶的身份,例如你希望以小A的身份登錄,那麼應用程序需要通過用戶名和密碼確認你真的是小A。 Authoriz

原创 Java面試題總結(一)之Java中ArrayList循環遍歷並刪除元素的陷阱

面試題:刪除列表中等於bb的元素 先看測試案例: import java.util.ArrayList; public class ArrayListRemove { public stati

原创 Mycat學習總結(1)之MyCat入門教程

一、是什麼是Mycat MyCat 是目前最流行的基於 java 語言編寫的數據庫中間件,是一個實現了 MySQL 協議的服務器,前端用戶可以把它看作是一個數據庫代理,用 MySQL 客戶端工具和命令行訪問,而其後端可以用 MySQL 原

原创 Java面試題總結(2)之ArrayList 爲什麼線程不安全

我們先來看看 ArrayList 的 add 操作源碼。 public boolean add(E e) { ensureCapacityInternal(size + 1); elementData

原创 多線程編程(2)之Java併發介紹

到目前爲止,你學到的都是順序編程,順序編程的概念就是某一時刻只有一個任務在執行,順序編程固然能夠解決很多問題,但是對於某種任務,如果能夠併發的執行程序中重要的部分就顯得尤爲重要,同時也可以極大提高程序運行效率,享受併發爲你帶來的便利。但是

原创 個人總結(4)之數據庫分庫分表思路

一、數據切分 關係型數據庫本身比較容易成爲系統瓶頸,單機存儲容量、連接數、處理能力都有限。當單表的數據量達到1000W或100G以後,由於查詢維度較多,即使添加從庫、優化索引,做很多操作時性能仍下降嚴重。此時就要考慮對其進行切分了,切分的

原创 個人總結(3)之高併發下的接口冪等性解決方案

一、背景 我們實際系統中有很多操作,是不管做多少次,都應該產生一樣的效果或返回一樣的結果。例如: 前端重複提交選中的數據,應該後臺只產生對應這個數據的一個反應結果。 我們發起一筆付款請求,應該只扣用戶賬戶一次錢,當遇到網絡重發或系統bug

原创 多線程編程(4)之ConcurrentHashMap

一前言 Map 這樣的 Key Value 在軟件開發中是非常經典的結構,常用於在內存中存放數據。本篇主要想討論 ConcurrentHashMap 這樣一個併發容器,在正式開始之前我覺得有必要談談 HashMap,沒有它就不會有後面的

原创 多線程編程(3)之ThreadLocal 原理和使用場景

一、什麼是ThreadLocal  ThreadLocal 是 JDK java.lang 包中的一個用來實現相同線程數據共享不同的線程數據隔離的一個工具。 我們來看下 JDK 源碼中是如何解釋的: This class provide

原创 多線程編程(1)之Java 中15種鎖的介紹

這裏主要介紹Java 中15種鎖的介紹:公平鎖,可重入鎖,獨享鎖,互斥鎖,樂觀鎖,分段鎖,自旋鎖等等,這篇文章介紹各種鎖的分類。介紹的內容如下: 1.公平鎖 / 非公平鎖 2.可重入鎖 / 不可重入鎖 3.獨享鎖 / 共享鎖 4.互斥鎖

原创 多線程編程(5)之CopyOnWriteArrayList源碼分析

一、簡介 CopyOnWriteArrayList是ArrayList的線程安全版本,內部也是通過數組實現,每次對數組的修改都完全拷貝一份新的數組來修改,修改完了再替換掉老數組,這樣保證了只阻塞寫操作,不阻塞讀操作,實現讀寫分離。 二、繼

原创 Java(1)之常用類庫總結

JAVA常用類庫總結簡介日誌類庫功能快捷鍵合理的創建標題,有助於目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPants創建一個自定義列表如何

原创 SpringCloud(7)之Eureka的工作原理以及它與ZooKeeper的區別

1、Eureka 簡介 前面說過,Eureka 是 Netflix 出品的用於實現服務註冊和發現的工具。 Spring Cloud 集成了 Eureka,並提供了開箱即用的支持。其中, Eureka 又可細分爲 Eureka Server