原创 Flume

大數據-Flume 環境 Flume-ng 1.9.0 source TAILDIR channel memory sink hdfs 一、性能測試 針對以下場景對Flume進行性能測試 場景1:一個channel,採用lzo壓

原创 Nginx (一) 基礎入門

1.簡介    Nginx的主要作用就是反向代理。    反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請

原创 FastDfs (二) Nginx 整合 Fastdfs

簡單概述 Fastdfs本身具有http模塊,但是自帶的http模塊比較弱,而且,由於同一group的storage之間會相互複製數據,複製數據是需要時間的,這時就會存在之前提到的同步延遲的問題,所以一般情況下,fastdfs

原创 Mybatis DAO層參數傳遞

衆所周知,Mybatis DAO層可以只寫接口方法,在mapper的XML配置文件中定義與接口方法同名的查詢節點就可以實現操作數據庫的功能。那麼問題來了,如何傳遞合適的參數給SQL語句(配置文件中定義的,當然配置文件也可以換成註解

原创 Nginx(二) 實踐中遇到問題

項目架構,Nginx+tomcat(三臺) 爲了實時向頁面端推送消息,使用了WebSocket,一開始的時候用戶訪問登錄頁面就會發送WebSocket連接請求,同時登陸頁面會調用一次驗證碼接口獲取頁面驗證碼,測試時,時不時的就會出現驗證碼

原创 FastDfs (一) 理論總結

簡單概述 FastDFS是一款類Google FS的開源分佈式文件系統,它用純C語言實現,支持Linux、FreeBSD、AIX等 UNIX系統。它只能通過專有API對文件進行存取訪問,只能作爲應用級的文件系統。 FastD

原创 MySql集羣環境搭建(windows平臺)

環境:Windows 7(64)平臺,兩臺機器(A,B), Server A(管理節點,數據節點,SQL節點) Server B(數據節點,SQL節點) 1、下載MySQL cluster安裝包       http://downloa

原创 Sparkstreaming讀取Kafka消息經過spark處理寫入hive表

spark-streaming-kafka-demo 使用Springboot框架,Sparkstreaming監聽Kafka消息,Redis記錄已讀Kafka偏移量,Spark統計單詞出現次數,最後寫入Hive表。 代碼參考:h

原创 Spring原理(四)AOP的實現

概述 下面是一個簡單的使用ProxyFactoryBean實現AOP的例子。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframewor

原创 zookeeper原理(二)集羣選主和同步

一、基本概念 zookeeper的核心是原子廣播,這個機制保證了各個server之間的同步,實現這個機制的協議叫做zab協議。zab協議有兩種模式: 分別是恢復模式和廣播模式。 恢復模式,zookeeper配置爲集羣模式時,系統啓動或

原创 Spring原理(二)IoC容器的初始化過程之ApplicationContext

上一篇已經介紹了BeanFactory的初始化過程,這一篇介紹一下ApplicationContext的初始化。ApplicationContext有很多實現,這裏以常見的FileSystemXmlApplicationContext爲例

原创 FastDfs (四) Fastdfs安裝

下載所需包 libfastcommon-master.zip zlib-1.2.11.tar.gz pcre-8.40.tar.gz libevent-2.0.21-stable.tar.gz nginx-1.10.3.tar.

原创 源碼分析之-容器類-HashMap

一、HashMap基本原理 HashMap採用Entry數組來存儲key-value對,每一個鍵值對組成了一個Entry實體,Entry類實際上是一個單向的鏈表結構,它具有Next指針,可以連接下一個Entry實體,依次來

原创 【碼藝雜談】Java中的相同與不同

Java中有很多場景需要判斷兩個對象或者兩個值,那麼 判斷是否相同的依據是什麼? 如何判斷是否相同呢? 爲了解釋這個問題,我們從Java語言的根說起,那Java語言的根在哪裏?我們知道Java是一種面向對象的編程語言,對象是類的實例,

原创 【源碼分析】JUC一Exchanger

Exchanger是一種線程間安全交換數據的機制。當線程A調用Exchange對象的exchange()方法後,他會進入阻塞狀態,直到線程B也調用了exchange()方法,然後以線程安全的方式交換數據,之後線程A和B繼續運行。 這裏先