原创 2.算法-手寫滑動窗口限流

限流 爲啥要限流,大多數情況是服務器資源不足,短時間內大量流量請求到服務器,限流會有部分流量正常返回,部分流量異常,好過服務器宕機,所有流量異常返回的情況。 在代碼世界上,限流有兩種比較常見的算法: 1.令牌桶算法 2.漏桶算法

原创 idea 配置javap 擴展工具 External Tools

一:新增 External Tools 二、 配置javap 三、使用 在idea 項目中 選中一個Java文件

原创 爬蟲第五篇 :Java httpclient 採集內網

很多情況下,公司的電腦是加入域的,而且上外網是要通過代理上網的,這總情況下使用httpclient訪問外網時必須使用代理,並且要通過NTLM驗證,所以需要在httpclient中使用NTLM協議。 關於NTLM,可以參考這裏。 以

原创 爬蟲第5篇-chrome headless 初試

無頭瀏覽器 無頭瀏覽器即headless browser,是一種沒有界面的瀏覽器。既然是瀏覽器那麼瀏覽器該有的東西它都應該有,只是看不到界面而已。 瀏覽器內核 早期的無頭瀏覽器多使用phantomjs,用作自動化測試和數據採集

原创 idea實用技巧

一:dubug模式下查看jvm dump信息 dubug 模式下 有個照相機按鈕 get thread dump

原创 領域驅動設計實踐(4)- 上下文映射圖

一個典型的上下文映射圖 映射圖可以反映 哪些地方需要與其他團隊進行交流。 上下文映射展示團隊之間邊界。促進不同團隊之間的交流。 跨團隊協作避免出現: 客戶方、供應方的關係。 如果對方團隊決定維持現狀,你的團隊陷入尊奉者,被動處理

原创 JAVA Bean 轉換工具 BULL 使用簡介

How to Transform Any Type of Java Bean With BULL 在跨團隊或者跨系統的開發調用時,經常遇到 兩個系統Java 代碼命名不一致的情況,簡單直接的辦法就是寫一堆get set 如果能拿

原创 gitlab配置釘釘機器人

文章目錄1.釘釘羣配置機器人2.複製機器人Webhook3.配置gitlab項目 1.釘釘羣配置機器人 羣設置-> 智能羣助手->添加機器人 2.複製機器人Webhook 3.配置gitlab項目 Setings->int

原创 爬蟲技術第六篇:java隨機返回UserAgent

java隨機返回UserAgent package com.tom.util; import java.util.ArrayList; import java.util.List; import java.util.Random

原创 1.跳躍表

redis 中zset 數據結構使用了跳躍表實現 zset 要支持隨機刪除和插入。插入特定順序,繼續保證鏈表有序, 二分查找的對象必須是數組 跳躍表一: 理解思路 鏈表加上多層的索引: 跳躍表二: 假如我們要用某種數據結構來維護

原创 實現領域驅動設計(2)- 交流與語言的使用

文章目錄一、通用語言二、 一個團隊,一個語言三、文檔和圖3.1流程圖3.2 交互圖3.3 UML 模型圖3.4系統設計概要 領域模型可以成爲軟件項目通用語言的核心。該模型是一組來自於人員頭腦中的概念,一級反應了領域深層次 含義的術

原创 實現領域驅動設計(1)

很多因素會使軟件開發複雜化,但是最根本的問題是問題領域本身錯綜複雜,如果你要爲一家人員複雜的的企業提高自動化程度,那麼你開發的軟件將無法迴避這種複雜性,你能所做的的只有控制這種複雜性。 控制複雜性的關鍵是有一個好的領域模型,這個

原创 Java 內存溢出和Java泄露的幾種情況

內存泄漏定義(memory leak): 一個不再被程序使用的對象或變量還在內存中佔有存儲空間。 一次內存泄漏似乎不會有大的影響,但內存泄漏堆積後的後果就是內存溢出。 內存溢出 (out of memory) : 指程序申請內存時

原创 爬蟲學習資料

爬蟲學習過程中收集的資料 理性使用技術,遠離非法業務。 Crawler 無頭瀏覽器異聞錄 | 嵐光 Burp Suite Python網頁信息採集:使用PhantomJS採集淘寶天貓商品內容 - 華天清 - 博客園 Selen

原创 spring mvc 參數校驗

當業務需要參數校驗的時候,可以直接在controller 寫入校驗邏輯 參數校驗經驗: 用戶業務,前端頁面校驗、服務端參數 校驗 管理後臺:前端校驗,服務端可以放開 javax.validation包提供了常見參數的校驗註解,如果