原创 storm學習一之storm概念

(注:本文主要是一些學習筆記,內容多是由文末的參考連接自行整理而來,如覺本文尚淺可以直接參考文末連接) 1.storm中的一些術語 topology 應用程序的所有邏輯被打包到Storm的topology中。Storm的topo

原创 JPS無法查看已經啓動的Java進程信息

問題描述:啓動Hbase集羣中RegionServer後,通過JPS無法查看到該進程號,導致無法通過jstat來查看regionserver的內存情況,來做一些JVM參數調優。 在網上查詢到的一些信息來看: java程序啓動後,

原创 Java獲取一個類的Class對象的四種方式

1.通過ClassLoader對象的loadClass()方法 比如以下方式: ClassLoader.getSystemClassLoader().loadClass("com.my.test.Hello") 去看一下load

原创 JVM知識整理一:類文件結構

這個系列的博客大多是閱讀《深入理解Java虛擬機》後整理而來,是本好書值得讀好多遍。 0x00 寫在前面: 1.先引用一下書中的話: Class文件各個數據項目嚴格按照順序緊湊地排列着,中間沒有添加任何分隔符 因爲Class文件要

原创 tcp too many orphaned sockets 問題引發的思考

起因:服務器上部署了單個golang編寫的HTTPDNS實例,一個固定的端口9981對外提供服務。當QPS達到幾十萬以上時,該實例崩潰,且無法再次啓動 dmesg 查看系統日誌,發現大量日誌,如下: TCP:too many orph

原创 記一次Cephfs客戶端讀寫大文件卡死問題解決

環境 集羣版本:12.2.10 集羣啓動了個MDS,其中三個active 一個standby 客戶端內核3.10,使用ceph-fuse 12.2.10進行掛載使用,掛載到客戶機/data1/test目錄下使用 情況 往/data1/

原创 Ceph RBD 和Cephfs 的使用指南(映射掛載卸載)

0x01 RBD映射 tips: rbd的映射需要Linux內核支持ceph和rbd模塊,可以通過命令modprobe ceph、modprobe rbd來判斷 在掛載 rbd之前需要下載對應版本的ceph-common,最好是>=

原创 Linux 五種IO模型

1. 一些概念 1.1 進程切換:百科 進程阻塞:百科 進程進入阻塞狀態也就讓出了CPU資源,等相應的事件出現才被喚醒 同步與異步:關注的是消息通信機制 (synchronous communication/ asynchronou

原创 Java靜態代理和動態代理

代理類的兩個優點: 可以隱藏委託類的實現 可以實現客戶與委託類間的解耦,在不修改委託類代碼的情況下能夠做一些額外的處理。 1靜態代理 UML圖如下: ServiceInterface: 服務接口類 ServiceImpl:服

原创 Java 線程池二之Executors創建的五種線程池及使用注意

0x01 關於ThreadPoolExecutor 上一篇博客已經說了,Executors就是一個工具類。他創建線程池時,實際上是通過如下: new ThreadPoolExecutor(corePoolSize, maximumP

原创 Java 線程池一之使用線程池的好處,以及Executors類

最近準備詳細的複習下Java線程池相關的所以知識。就從我們最初使用線程池開始,也就是Executors,慢慢展開。 0x01先談談爲什麼要使用線程池 第一:降低資源消耗。通過重複利用已創建的線程降低線程創建和銷燬造成的消耗。 第二:

原创 關於非對稱加密的原理及使用

0.關於非對稱加密 非對稱加密(英語:asymmetric cryptography),是密碼學的一種算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密的時候,另一個則用作解密。使用其中一個密鑰把明文加密後所得的密

原创 Linux路徑中雙斜槓//的問題

如果有個一個需求: 告訴了你根目錄的絕對路徑是"/rootdir",這個根目錄下的一個子文件名叫"subfile" 那麼要求你寫一個函數返回這個子文件的絕對路徑。 很簡單這樣寫: String buildAbsolutePath(St

原创 shell中打印換行

三種方式 1.轉義 echo "a\na\\nc" 2.使用 -e 參數 echo -e "a\na" //-e enable interpretation of backslash escapes (啓用反斜槓轉義) 3

原创 Ubuntu16.04或18.04上安裝QQ微信迅雷

0. 寫在前面 沒辦法,公司的電腦是Windows的,windows下面開發實在太噁心人,並且開發中需要編譯golang和C++的程序,於是開始了Linux的折騰之路。 如果你只是想用Linux環境開發,而有不想折騰,你可以直接安裝