原创 Mysql的四種隔離級別

本文實驗的測試環境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事務的基本要素(ACID)   1、原子性(Atomicity):事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滯在中間環節。事務執行過

原创 Java併發問題--樂觀鎖與悲觀鎖以及樂觀鎖的一種實現方式-CAS

首先介紹一些樂觀鎖與悲觀鎖:   悲觀鎖:總是假設最壞的情況,每次去拿數據的時候都認爲別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會阻塞直到它拿到鎖。傳統的關係型數據庫裏邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀

原创 HashMap、Hashtable、ConcurrentHashMap的原理與區別

https://www.cnblogs.com/heyonggang/p/9112731.html 下面直接來乾貨,先說這三個Map的區別: HashTable 底層數組+鏈表實現,無論key還是value都不能爲null,線程安全,實現

原创 JVM優化

開場白:java幕後的英雄-jvm(Java Virtual Machine) 1,why 優化 內存溢出:對象佔用內存過多。最終會導致內存泄露。 內存泄露:GC失效。   什麼對象會被GC? 算法:可達性算法。引用計數法:jvm棄用,不

原创 JVM調優常用參數設置

上圖:   一、堆大小設置  JVM 中最大堆大小有三方面限制:相關操作系統的數據模型(32-bt還是64-bit)限制;系統的可用虛擬內存限制;系統的可用物理內存限制。32位系統下,一般限制在1.5G~2G;64爲操作系統對內存無限

原创 線程池中的阻塞隊列選擇

這是一個十分嚴重的問題 自從最近的某年某月某天起,線上服務開始變得不那麼穩定。在高峯期,時常有幾臺機器的內存持續飆升,並且無法回收,導致服務不可用。 例如GC時間採樣曲線: 和內存使用曲線: 圖中所示,18:50-19:00的階段,已

原创 mysql優化之58同城軍規

軍規適用場景:併發量大、數據量大的互聯網業務軍規:介紹內容 解讀:講解原因,解讀比軍規更重要 一、基礎規範 (1)必須使用InnoDB存儲引擎解讀:支持事務、行級鎖、併發性能更好、CPU及內存緩存頁優化使得資源利用率更高 (2)必須使用U

原创 Mybatis防止sql注入

案例分析 SQL注入,是一種常見的攻擊方式。攻擊者在界面的表單信息或URL上輸入一些奇怪的SQL片段(例如“or ‘1’=’1’”這樣的語句),有可能入侵參數檢驗不足的應用程序。所以,在我們的應用中需要做一些工作,來防備這樣的攻擊方式。在

原创 mysql性能優化

Sql優化順序   1,數據庫是否設置合理             基本滿足三範式 第一範式(確保每列保持原子性) 第二範式(確保表中的每列都和主鍵相關) 第三範式(確保每列都和主鍵列直接相關,而不是間接相關)             性

原创 分佈式基礎之序列化與反序列化

  目錄 序列化與反序列化,Why? 序列化的意義 一個簡單實例 JAVA序列化的高階認識 serialVersionUID 的作用 靜態變量序列化 父類的序列化 Transient 關鍵字 序列化的存儲規則 序列化實現深克隆 常見的序列

原创 分佈式通信協議-TCP/IP與常用IO方式

目錄 TCP傳輸過程  IP 協議和 TCP/UDP 協議 TCP 是如何做到可靠傳輸的 組播協議 Multicast IO:BIO與NIO、AIO   網絡領域的知識 協議:tcp、udp、multicast IO(BIO、NIO、AI

原创 分佈式系統的架構演進

目錄 分佈式系統的意義 分佈式架構的常見概念 架構的發展過程 分佈式系統的馮洛伊曼模型 分佈式系統的難點 分佈式系統的意義  升級單機處理能力的性價比越來越低:單機的處理能力主要依靠 CPU、內存、磁盤。通過更換硬件做垂直擴展的方式來提升

原创 分佈式架構設計概述

目錄 主流架構模型-SOA 架構和微服務架構 領域驅動設計及業務驅動劃分 分佈式架構的基本理論 CAP、BASE 以及應用 什麼是分佈式架構下的高可用設計 加速靜態內容訪問速度的CDN 灰度發佈   主流架構模型-SOA 架構和微服務架構

原创 ActiveMq-Spring整合

  1,引入jar <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>

原创 SVN報錯:Error Updating changes: svn: E155037

SVN不能更新了,也不能提交了。網上搜了一下,是因爲SVN操作衝突了。按照提示的意思在項目Subversion下面Cleanup了一把,可是沒用,這個錯還在,依然無法更新提交。 這種情況下,要麼刪除項目,重新checkout,代價太大。