原创 spring boot 接受ajax數組

最近在用spring boot + vue.js作後臺,在做批量刪除的時候出現了異常 jackson報的錯 org.springframework.http.converter.HttpMessageNotReadableExceptio

原创 《Scalable IO in Java》筆記

Scalable IO in Java http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf 基本上所有的網絡處理程序都有以下基本的處理過程: Read request Decode request

原创 從零編寫日誌分析系統之elasticsearch5.5.2環境搭建

去官網找到下載地址 官網地址:https://www.elastic.co/downloads/elasticsearch 在服務器裏下載安裝包 wget https://artifacts.elastic.co/down

原创 filebeat採集數據的幾個痛點的解決方案

1.行轉列 filebeat採集多行日誌的時候會把日誌分開來採集,這樣傳遞到logstash的時候就無法正確解析了,所以用把多行日誌統一採集。 這時候可以使用:multiline配置選項。 multiline:適用於日誌中每一

原创 二叉堆的基本概念與實現

基本概念 二叉堆又名堆,或者優先隊列。一般實現在堆頂的元素總是最小的。 二叉堆是一顆用數組實現的完全二叉樹。 要實現二叉堆必須滿足以下條件: 1堆有序,二叉樹中每一個子樹的父節點不大於(大根堆)兩個子節點。 2樹的父節點的

原创 從零編寫日誌分析系統之filebeat安裝配置

filebeat和logstach都是日誌採集工具,不過logstach可以進行數據清洗。在應用服務器上直接安裝Logstash比較消耗性能,所以需要安裝filebeat來獲取數據,再轉發到logstash進行數據清洗。 file

原创 最短路徑的概念與基本數據結構

概念 最短路徑最直接的例子就是導航軟件的,從一個地方到另一個地方的路徑。要實現最短路徑算法,一般使用一個加權有向圖。即找到一個頂點到另一個頂點權重最小的有向路徑。 基本的數據結構 帶權有向圖的數據結構和帶權無向圖差不多,只是添加邊

原创 從零編寫日誌分析系統之nginx日誌配置

配置nginx日誌文件 nginx原有的配置文件包含的信息比較少,可以修改nginx.conf得到更多的數據。 nginx日誌文件輸出形式有三種形式,最常見的就是通過空格區分字段輸出。還有通過自定義json形式輸出,通過syslo

原创 從零編寫日誌分析系統之linux用戶創建

服務器使用root用戶不好,還是要建個新用戶。 添加一個新的用戶組 groupadd alms 添加一個新的用戶並分配alms用戶組 useradd alms_admin -g alms 設置密碼 passwd alm

原创 logstash通過codec將完整的數據發送到kafka

業務需求,通過logstash解析日誌後,需要發送一個份到kafka中。但在實際操作的時候發現一個很蛋疼的問題。就是logstash發送到kafka的數據竟然只是一個message。。對就是一個大括號包裹的message,其他什麼

原创 elasticsearch通過組合使用自定模板和動態模板來映射logstash數據

logstash傳輸給es的數據會自動映射爲5索引,5備份,字段都爲text的的索引。這樣基本上無法進行數據分析。 所以必須將logstash的數據按照既定的格式存儲在es中,這時候就要使用到es模板技術了。在es中可以定義了自

原创 使用es構建全自動搜索系統

相信每一個使用lucene或者solr的程序員最深惡痛覺的就是爲每一個文檔(document)創建索引,特別是lucene,一些複雜一點的索引需求會寫半個屏幕的查詢語法。但是有了es,這些問題都迎刃而解了。通過es的特性,只需要做

原创 最短路徑之Dijkstra算法的概念與實現

基本概念 要找出最短路徑,其實就是從起點遍歷所有能到達的頂點,然後計算他們的權重。Dijkstra算法核心在於邊的鬆弛(relax),可以想象成一根繃緊的橡皮筋,讓它放鬆下來。即是計算源點(s)經過當前點(v)到目標點(w)的權重

原创 最小生成樹之prim算法概念與實現

基本概念 prim算法是以頂點爲視角的,每一步都會爲生長中的樹添加一條邊。從初始頂點出發,然後找到頂點周圍最小的邊,然後移動到最小邊的另一個端點,繼續找到頂點周圍最小的邊,直到得到最小生成樹。所以prim算法的軌跡是一顆從初始頂點

原创 最小生成樹之kruskal算法概念與實現

概念 最小生成樹的kruskal算法非常簡單了,原理和prim算法差不多,然而kruskal並不是從源點開始層次考察的,而是直接用優先隊列存儲所有邊,通過貪心算法的思想,用權重最小的邊組成最小生成樹。需要注意的是要通過並查集過濾掉