原创 rocketmq學習筆記 ---- NettyRemotingServer和NettyRemotingClient

Netty是目前java最流行的網絡框架,RocketMQ也使用Netty作爲網絡通訊底層框架。 NettyRemotingServer實現Netty服務器端功能,接受數據包,在服務器端處理後發送給客戶端。NettyRemotingCl

原创 rocketmq學習筆記 ---- 環境搭建

最近準備擼rocketmq,寫博客記錄一下學習過程,方便以後溫故知新。 從apache rocketmq官網上可以看到,rocketmq的搭建需要的軟硬件要求: 64bit OS, Linux/Unix/Mac is recommende

原创 rocketmq學習筆記 ---- Hello world!

RocketMQ的集羣部署機構如圖所示: 在環境搭建過程中,啓動了mqnamesrv以及broker,這就是RocketMQ集羣中的服務發現以及消息存儲的模塊,程序中只需要實現Producer以及Consumer即可。 Producer

原创 緩存行填充與@sun.misc.Contended註解

1.緩存模型 CPU和主內存之間有好幾層緩存,因爲與cpu的速度相比,訪問主內存的速度是非常慢的。如果頻繁對同一個數據做運算,每次都從內存中加載,運算完之後再寫回到主內存中,將會嚴重拖累cpu的計算資源。因此,爲了充分發揮CPU的計算性能

原创 ThreadLocal那點事

目錄 1.ThreadLocal原理 2.ThreadLocal內存泄漏 3.ThreadLocal最佳實踐 4.FastThreadLocal原理 5.FastThreadLocal最佳實踐 6.ThreadLocal與FastThre

原创 Netty服務器可以重複啓動的原因探索

1.起因 前幾天下午,測試服務平臺接口的接口時發現:接口可以調用,但是服務器下沒有任何調用接口的日誌;然後重啓服務器,可以正常重啓,並且有啓動日誌。再次調測試接口,還是沒有調用日誌,這種詭異的現象還是第一次碰到。 後來查詢所有服務器進程的

原创 rocketmq學習筆記 ---- 使用shell腳本自動啓動RocketMQ

由於公司每天需要關閉測試服務器,所以每天上班的第一件事就是啓動測試服務器上的服務。作爲一名程序員,這種程序化事情最好可以由程序來執行。 1、rc.local中啓動 打開文件/etc/rc.local,在文件末尾追加寫入啓動命令: exp

原创 rocketmq學習筆記 ---- NameServer

博客從RocketMQ我們學到了什麼之NameServer以郵局的功能作爲類比,通俗易懂地介紹了RocketMQ中的NameServer在整個框架中的作用。   啓動流程 首先,NameServer的啓動類爲org.apache.rock

原创 rocketmq學習 ---- NettyRemotingServer

Netty是目前java最流行的網絡框架,RocketMQ也使用Netty作爲網絡通訊底層框架。 NettyRemotingServer實現Netty服務器端功能,接受數據包,在服務器端處理後發送給客戶端。NettyRemotingCl

原创 rocketmq學習 ---- 環境搭建

最近準備擼rocketmq,寫博客記錄一下學習過程,方便以後溫故知新。 從apache rocketmq官網上可以看到,rocketmq的搭建需要的軟硬件要求: 64bit OS, Linux/Unix/Mac is recommende

原创 rocketmq學習 ---- Hello world!

RocketMQ的集羣部署機構如圖所示: 在環境搭建過程中,啓動了mqnamesrv以及broker,這就是RocketMQ集羣中的服務發現以及消息存儲的模塊,程序中只需要實現Producer以及Consumer即可。 Producer

原创 java線程未捕獲異常處理 -- UncaughtExceptionHandler

 在java中,Exception分爲兩種:RuntimeException和其他需要顯式捕獲的異常,例如在創建文件時,FileNotFoundException 必須 使用try/catch捕獲,而RuntimeException是不需

原创 理解Sharding jdbc原理,看這一篇就夠了

相比於Spring基於AbstractRoutingDataSource實現的分庫分表功能,Sharding jdbc在單庫單表擴展到多庫多表時,兼容性方面表現的更好一點。例如,spring實現的分庫分表sql寫法如下: select

原创 A*尋路算法之解決目標點不可達問題

在遊戲世界的尋路中,通常會有這樣一種情況:在小地圖上點擊目標點時,點擊到了障礙物或者建築上,然後遊戲會提示我們目標地點無法到達。玩家必須非常小心的在小地圖上點擊目標區域的空白部分,才能移動到目標地點。那麼,有沒有辦法來改進一下這種不友好的

原创 代理模式與委託模式的異同點

 在《設計模式之禪》(第二版)中,作者說“代理模式也叫做委託模式”,顯然是認爲代理模式和委託模式是毫無差別的。然而在實際開發中,我們通常可以很明確的知道一個模式究竟是代理模式還是委託模式,說明兩者之間還是有一些區別的。 代理模式和委託模式