原创 synchronized與ReentrantLock的介紹、使用、適合場景及比較

JDK 5.0爲開發人員開發高性能的併發應用程序提供了一些很有效的新選擇,目前存在兩種鎖機制:synchronized和Lock,Lock接口及其實現類是JDK5增加的內容,ReentrantLock是Lock的實現。在實際的工作中,大家

原创 fastdfs分佈式文件系統之tracker server介紹

tracker server是FastDFS文件系統的協調者,其主要作用是負載均衡和調度。Tracker server在內存中記錄分組和Storage server的狀態等信息, 不記錄文件索引信息,佔用的內存量很少。另外,客戶端(應用)

原创 使用RSA、MD5對參數生成簽名與驗籤

在日常的工作中,我們對外提供的接口或調用三方的接口往往有一步生成簽名或驗籤的步驟,這個步驟主要是驗證調用方是不是合法的以及內容是否被修改。比如:對於某些網上公開下載的軟件,視頻,尤其是鏡像文件。如果被修改了可能會導致用不了或者其他的問題,

原创 fastdfs分佈式文件系統文件上傳、下載、刪除交互過程講解

在講解fastdfs的上傳、下載和刪除流程之前,我們先介紹fastdfs中的工程流程:首先客戶端client 調用fastdfs的api,獲取可用的tracker server , 再調用tracker server 獲取可用的組,t

原创 fastdfs分佈式文件系統之TrackerServer連接池實現

公司使用fastdfs文件系統來存儲文件和圖片,爲了避免每個系統都直接通過客戶端直接訪問fastdfs文件系統,所以我們做了一個dubbo服務。要實現圖片上傳、下載的服務或工程直接調用dubbo接口就可以了。爲了提高性能對fastdfs文

原创 fastdfs分佈式文件系統概述

在工作中使用到了fastdfs分佈式文件系統用作圖片、文件的存儲,由於它小巧、易用、高性能、自帶分佈式和負載均衡的功能,收到了很多公司和 團隊的喜愛。自己在使用過程中也覺得非常的好用所以寫幾篇文章對fastdfs文件系統概述、存儲結構、

原创 路由器升級千兆後xshell連接局域網服務器很慢和連接linux服務器mysql很慢問題

        最近公司路由器升級成千兆後windows電腦xshell連接局域網linux服務器和使用Navicat連接mysql都很慢,剛開始以爲是交換機還是使用百兆的原因,然後把交換機也升級了,還是不行。最後在網上查找了相關資料,找

原创 JVM垃圾回收全景圖

這張圖是在其它CSDN博主的文章裏面看到的,整理的非常好,對作者表示感謝。雖然只是張圖片,但是簡潔明瞭的描述了各種jvm回收器的特點、使用的場景及優點。轉載於:http://blog.csdn.net/u013970991/article

原创 使用zxing批量生成二維碼立牌

使用zxing批量在做好的立牌背景圖的指定位置上,把指定的文本內容(鏈接地址、文本等)生成二維碼並放在該位置,最後加上立牌編號。步驟:1).做好背景圖,如下圖:2).生成二維碼BufferedImage對象。代碼如下:/** *

原创 使用spring+html5實現安全傳輸隨機數字密碼鍵盤

隨着互聯網的飛躍式發展,移動支付已越來越受歡迎並且已成爲常態,很多三方支付公司推出了很多支付方式如快捷支付、認證支付、掃碼支付等等。快捷支付和認證支付可分爲移動app控件和移動HTML5網頁。用戶第一次使用快捷支付或認證支付進行支付的時候

原创 收集的java問題和技巧

下面的java編程的問題和技巧,部分是自己遇到的問題和總結,部分是自己在網上看到的有意思的問題。本篇文章內容將會不斷的對自己收集的問題和技巧進行更新。1).List遍歷過程中刪除元素推薦做法使用Iterator遍歷,但是不用list來re

原创 java金錢處理方法收集

在支付行業中,涉及到對金錢的處理比較多。比如分轉化成元、費率計算、手續費計算等等。1.分轉化成元/** * 單位換算:分->元 * * @param amount * 分 * @param sc

原创 JAVA進程高CPU佔用故障排查

一個應用佔用CPU很高,除了確實是計算密集型應用之外,通常原因都是出現了死循環。在線上怎樣結合linux命令和JDK工具定位問題呢?在網上看到的一篇文章感覺寫的非常的好,所以轉載分享出來,希望能幫更多的人解決問題。正文:1).根據進入線上

原创 使用jdk的jps、jstack工具檢測代碼問題,提高程序性能

今天給大家分享怎樣利用jdk的jps和jstack工具結合定位代碼的問題,提高程序的穩定性、健壯性和性能。在jdk的bin,目錄下面有很多的工具如圖:jps、jstack工具介紹:jps:是JDK1.5提供的一個顯示當前所有java進

原创 redis哨兵模式使用lua腳本實現分佈式鎖

spring redis和redis包在設置key值的時候,都是先調用setnx設置值,成功就返回1,然後通過Expire設置超時時間,這樣會出現一個問題假如setnx成功,但是expire的時候,失敗了,那麼該值就會一直存在,這樣會造成