原创 jstack排查cpu佔用高的步驟

通過jstack排查cpu佔用高的問題 1.通過top命令找到cpu佔用高的應用程序進程 2.通過top -H -p pid查看該應用中佔用CPU高的線程。 3.通過printf "%x\n" pid 將線程高的線程號轉爲十六進制。 4.通

原创 都知道Base64,Base32你能實現嗎?

很長時間沒有更新個人博客了,因爲前一段時間在換工作,入職了一家新的公司,剛開始需要適應一下新公司的節奏,開始階段也比較忙。新公司還是有一定的技術氣氛的,每週都會有技術分享,而且還會給大家留一些思考題,這次的思考題就是讓我們回去實現一個Bas

原创 Nacos配置中心和服務的註冊發現

在上一篇中,我們已經把Nacos的集羣搭建好了,那麼既然已經搭建好了,就要在咱們的項目中去使用。Nacos既可以做配置中心,也可以做註冊中心。我們先來看看在項目中如何使用Nacos做配置中心。 Nacos配置中心 在項目中使用Nacos做配

原创 註冊中心Nacos集羣搭建

一提到註冊中心,大家往往想到Zookeeper、或者Eureka。今天我們看看阿里的一款配置中心+註冊中心的中間件——Nacos。有了它以後,我們的項目中的配置就可以統一從Nacos中獲取了,而且Spring Cloud的提供者和消費者還可

原创 MySQL主主模式+Keepalived高可用

今天閒來無事,打算搭建一個MySQL的高可用架構,採用的是MySQL的主主結構,再外加Keepalived,對外統一提供虛IP。先來說說背景吧,現在的項目爲了高可用性,都是避免單節點的存在的,比如,我們的應用程序,都是部署多個節點,通過Ng

原创 Spring整合WebSocket

WebSocket,幹什麼用的?我們有了HTTP,爲什麼還要用WebSocket?很多同學都會有這樣的疑問。我們先來看一個場景,大家的手機裏都有微信,在微信中,只要有新的消息,這個聯繫人的前面就會有一個紅點,這個需求要怎麼實現呢?大家思考3

原创 溫故知新——Spring AOP

Spring AOP 面向切面編程,相信大家都不陌生,它和Spring IOC是Spring賴以成名的兩個最基礎的功能。在咱們平時的工作中,使用IOC的場景比較多,像咱們平時使用的@Controller、@Service、@Reposito

原创 溫故知新——Spring AOP(二)

上一篇我們介紹Spring AOP的註解的配置,也叫做Java Config。今天我們看看比較傳統的xml的方式如何配置AOP。整體的場景我們還是用原來的,“我穿上跑鞋”,“我要去跑步”。Service層的代碼我們不變,還是用原來的,如下:

原创 Sharding-Proxy的基本功能使用

Sharding-Proxy是一個分佈式數據庫中間件,定位爲透明化的數據庫代理端。作爲開發人員可以完全把它當成數據庫,而它具體的分片規則在Sharding-Proxy中配置。它的整體架構圖如下: 在架構圖中,中間的藍色方塊就是我們的中間件

原创 Java內存溢出OutOfMemoryError的產生與排查

在java的虛擬機異常中,有兩個異常是大家比較關心的,一個是StackOverflowError,另一個是OutOfMemoryError。今天我們就來看看OutOfMemoryError是怎麼產生的,以及如何去排查這個異常。 概念 要了解

原创 RocketMQ系列(七)事務消息(數據庫|最終一致性)

終於到了今天了,終於要講RocketMQ最牛X的功能了,那就是事務消息。爲什麼事務消息被吹的比較熱呢?近幾年微服務大行其道,整個系統被切成了多個服務,每個服務掌管着一個數據庫。那麼多個數據庫之間的數據一致性就成了問題,雖然有像XA這種強一致

原创 RocketMQ系列(六)批量發送與過濾

今天我們再來看看RocketMQ的另外兩個小功能,消息的批量發送和過濾。這兩個小功能提升了我們使用RocketMQ的效率。 批量發送 以前我們發送消息的時候,都是一個一個的發送,這樣效率比較低下。能不能一次發送多個消息呢?當然是可以的,Ro

原创 RocketMQ系列(五)廣播與延遲消息

今天要給大家介紹RocketMQ中的兩個功能,一個是“廣播”,這個功能是比較基礎的,幾乎所有的mq產品都是支持這個功能的;另外一個是“延遲消費”,這個應該算是RocketMQ的特色功能之一了吧。接下來,我們就分別看一下這兩個功能。 廣播 廣

原创 RocketMQ系列(四)順序消費

折騰了好長時間才寫這篇文章,順序消費,看上去挺好理解的,就是消費的時候按照隊列中的順序一個一個消費;而併發消費,則是消費者同時從隊列中取消息,同時消費,沒有先後順序。RocketMQ也有這兩種方式的實現,但是在實踐的過程中,就是不能順序消費

原创 RocketMQ系列(三)消息的生產與消費

前面的章節,我們已經把RocketMQ的環境搭建起來了,是一個兩主兩從的異步集羣。接下來,我們就看看怎麼去使用RocketMQ,在使用之前,先要在NameServer中創建Topic,我們知道RocketMQ是基於Topic的消息隊列,在生