原创 JSON轉換工具:fastjson與jackson以及fastjson的enable_type

        JSON在開發過程中的作用越來越重要,特別是異構平臺之間,使用JSON來通信是非常簡單的。一般情況下,在使用json進行轉換的時候,一般會採用JSONObject或者是google的Gson。今天給大家介紹兩個非常好用,功

原创 遠程方法動態調用之參數的處理

最近處理了一個通過類名、方法名、參數值遠程調用的功能。在處理的過程中,使用反射的方式進行動態調用,其中的難點是對泛型的處理,特別是多層泛型的情況。現將開發過程中的思路以及遇到的問題進行總結。 方法聲明:public synchronize

原创 用Callable和CurrentHashMap實現排它鎖

在構建緩存的時候,不可避免的要使用排它鎖,防止多個線程同時檢測到沒有緩存,而去查詢數據庫。此時一般情況下都會使用synchronized或者ReentrantLock來實現。今天給大家介紹一種比較巧妙的實現方式:使用Callable和Cu

原创 Docker初學者實戰

集合網上各個資料,整理的一些步驟,個人記錄,備忘! 安裝Docker centos7安裝docker 參考https://www.runoob.com/docker/centos-docker-install.html,按照以下步

原创 阿里巴巴Canal數據同步實戰

引言 隨着業務的發展,我們需要對數據庫中的數據進行彙總、統計等操作,通常我們的做法是:寫一個定時任務,定時讀取數據,再進行彙總、統計等。但隨着數據量的越來越來,查詢的成本高了很多。那麼有什麼好的方法來實現呢?阿里巴巴開源的Canal就

原创 電商中用戶餘額/積分以及庫存的設計

在電商中,我們總會遇到用戶餘額/積分和庫存的問題,總是怕會出現用戶餘額/積分用超或商品超賣的情況。這次就來了解一下怎麼設計用戶餘額/積分,怎麼來處理庫存問題。 一、用戶餘額/積分設計 1、概述 對於用戶餘額/積分,一方面我們需要知道用戶的

原创 不恰當的update語句使用主鍵和索引導致mysql死鎖

背景知識: MySQL有三種鎖的級別:頁級、表級、行級。MyISAM和MEMORY存儲引擎採用的是表級鎖(table-level locking);BDB存儲引擎採用的是頁面鎖(page-level locking),但也支持表級鎖;In

原创 Maven項目打包爲可執行Jar包

maven pom.xml配置文件如下:<build> <finalName>jar-test</finalName> <plugins> <plugin>

原创 使用curator操作zookeeper

      使用Java操作zookeeper時,一般有兩種方式:使用zkclient或者curator,相比較來說,curator的使用較爲簡便。今天就來看看如何使用curator來操作zookeeper。      需要的依賴如下:

原创 spring aop aspect + annotation實現緩存命中判斷

    最近看到了一種使用aop和註解的方式實現緩存命中判斷的實現方式,覺得非常不錯。借鑑過來,進行分享。     1、引入spring和aspect相關依賴 <dependency> <groupId>org.aspectj<

原创 HttpURLConnection發送接收Http請求

HttpURLConnection是JDK提供的用於發送接收Http請求的類。不需要要引入第三方jar包即可使用,支持http和https的發送方式。 發送https需要的前置信息初始化 private static SSLContext

原创 Java NIO UDP發送接收數據

Java的NIO包中,有一個專門用於發送UDP數據包的類:DatagramChannel,UDP是一種無連接的網絡協議, 一般用於發送一些準確度要求不太高的數據等。 完整的服務端程序如下: public class Statistics

原创 壓力測試工具--JMeter使用指南

最近由於項目需要,使用JMeter對項目進行了壓力測試。現在對JMeter的一些使用方式進行總結。 Apache JMeter是Apache組織基於Java開發的壓力測試工具。用於對軟件做壓力測試。 JMeter啓動方式 JMeter

原创 Redis客戶端Redisson的簡單應用

    Redisson是在基於NIO的Netty框架之上,充分的利用了Redis鍵值數據庫提供的一系列優勢,在Java實用工具包常用接口的基礎上,爲使用者提供了一系列具有分佈式特性的常用工具類。簡單來說,我們通過Redisson能夠更方

原创 request的getParameter getParameterMap getInputStream等的一些解惑

getParameter和getParameterMap 這兩個方法都是用來獲取request中的參數的,包括了URL中的參數和body體中的參數。 getParameter的返回值是:Map (String,String),當參數中存