原创 nginx搭建網關服務器

一、業務背景分析 前一段時間,需要開發一套業務系統,此係統需要對外統一提供api服務,但這些服務在內部是由多個業務子系統分別提供。 經過分析,此業務系統需要具有以下這麼幾個特性 1、不同的api服務由不同的子系統負責 2、每一個服務之間是

原创 浮點數精度丟失

問題提出:12.0f-11.9f=0.10000038,”減不盡”爲什麼? 來自MSDN的解釋: http://msdn.microsoft.com/zh-cn/c151dt3s.aspx 爲何浮點數可能丟失精度,浮點十進制值通常沒有完

原创 浮點類型float double 以及BigDecimal

1.引言   float和double類型的主要設計目標是爲了科學計算和工程計算。他們執行二進制浮點運算,這是爲了在廣域數值範圍上提供較爲精確的快速近似計算而精心設計的。然而,它們沒有提供完全精確的結果,所以不應該被用於要求精確結果的場合

原创 發現kafka丟消息後的排查

背景:       最近在用kafka做消息中間件,producer從hive中讀取消息發送到kafka,後端storm對消息分類發送到elasticsearch建立索引。 問題:       hive表中總共350萬數據,當時整個全量索

原创 加密算法及區別

加密技術 常用的加密算法總體可以分爲兩類:單項加密和雙向加密,雙向加密又分爲對稱加密和非對稱加密,因此主要分析下面三種加密算法: 對稱加密算法、非對稱加密算法和單項加密算法(Hash算法)。 雙向加密即明文加密後形成的密文,可以通過逆向算

原创 Servlet、Struts2以及SpringMvc中的線程安全

Servlet是單例多線程 struts2每次處理一個請求,struts2就會實例化一個對象,這樣就不會有線程安全的問題了。Struts2 是線程安全的,當然前提情況是,Action 不交給 spring管理,並且不設置爲單例。 Spri

原创 java的四種修飾符訪問權限

java的訪問修飾符有四種:private、protected、public、default. 這四種訪問修飾符的訪問權限不一樣。 java修飾符訪問權限 修飾符 所在類 同一個包內其他類 其他包內子類 其他包內非子類 缺省(defaul

原创 elasticsearch java api查詢

/**  * 系統環境: vm12 下的centos 7.2  * 當前安裝版本: elasticsearch-2.4.0.tar.gz  */ QueryBuilder 是es中提供的一個查詢接口, 可以對其進行參數設置來進行查用擦還訓

原创 ElasticSearch API實現CRUD

目錄 2.5、版本控制 2.6、實現映射mapping 2.7、基本查詢(Query查詢) 2.7.1、數據準備 2.7.2、term查詢和terms查詢 2.7.3、控制查詢返回的數量 2.7.4、返回版本號 2.7.5、match查詢

原创 使用Java泛型和反射機制編寫Excel文件生成和解析的通用工具類

前幾天被派到一個小項目中做臨時維護,工作地點不方便且不說,項目代碼那叫一個噁心... 代碼幾乎完全沒有註釋。這應該是我們天朝大部分程序員的習慣,代碼不寫註釋,給後面維護的同事帶來多大麻煩啊! 幾百行的JS代碼放在JSP文件中,而且沒有格式

原创 淘寶技術架構演進之路

1.概述   本文以淘寶爲例,介紹從一百到千萬級併發情況下服務端架構的演進過程,同時列舉出每個演進階段遇到的相關技術,讓大家對架構的演進有一個整體的認知,最後彙總一些架構的設計原則。 2.基本概念   在介紹架構之前,爲了避免讀者對架構設

原创 分析connection reset by peer, socket write error錯誤原因

上次寫《connection reset by peer, socket write error問題排查》已經過去大半年,當時把問題“敷衍”過去了。 但是此後每隔一段時間就會又想起來,baidu、google一番,可能也會再拉周圍的人小討

原创 Mybatis與iBatis的主要區別對比

Mybatis與iBatis的主要差異對比 他們都是優秀的持久層框架,MyBatis是現在最常用的持久層框架,可以動態地拼接sql語句,非常人性化,更適合邏輯複雜的sql;iBatis就是MyBatis前身,他們有很多相似的地方,今天主要

原创 hashmap指定容量

本來想寫一篇關於HashMap完整的源碼分析的,結果我發現整理了一下東西是真的多,而且也怕誤人子弟,那就分析一下爲什麼阿里Java開發手冊裏爲要指定HashMap的容量吧。 讓我們帶着問題進入: 爲什麼要使用構造函數指定HashMap的容

原创 Netty總結

一、IO模型 阻塞IO(bloking IO):優點:能夠及時返回數據,無延遲;方便調試;缺點:需要付出等待的代價 非阻塞IO(non-blocking IO):優點:不需要等待任務 ,而是把時間花費到其它任務上,也就是這個當前線程同時處