原创 rabbitmq 實現延時隊列的 方式

延遲隊列存儲的對象是對應的延遲消息,所謂"延遲消息"是指當消息被髮送以後,並不 想讓消費者立刻拿到消息,而是等待特定時間後,消費者才能拿到這個消息進行消費 。 延遲隊列的使用場景有很多,比如: 令在訂單系統中, 一個用戶下單之後通常有 3

原创 mybatis if test非空判斷數字0爲什麼是false

今天工作中發現一個Long類型的參數沒有傳到sql中去,在sql xml配置文件中是使用if test標籤判斷:  <if test="version != null and version != ''">xxxxx</if> 通過deb

原创 mysql 解決主從延遲的方發二

今兒打算給大家分享的是如何解決MySQL主從延遲的問題,這個也是一些同學在生產中面臨的比較棘手的問題,  經常給我打電話或者微信,說張老師,現在監控主從之間的延遲特別大。怎麼辦啊?!有什麼辦法可以避免延遲嘛?!       面對拋出這樣的

原创 docker 運行rabbitMq

1、進入docker hub鏡像倉庫地址:https://hub.docker.com/ 2、搜索rabbitMq,進入官方的鏡像,可以看到以下幾種類型的鏡像;我們選擇帶有“mangement”的版本(包含web管理頁面); 3、拉取鏡

原创 rabbitmq實現向各服務廣播消息

廣播fanout 主要是將一個消息,分發到綁定了它的隊列上,而這些隊列如消費者自己去建立和綁定! 對生產者是解耦的 生產者不需要關心消費者有多少,消費者如果需要這種消息,只需要把隊列綁定到exchange上即可 流程 打開rabbitmq

原创 rabbitmq實現向各服務廣播消息

廣播fanout 主要是將一個消息,分發到綁定了它的隊列上,而這些隊列如消費者自己去建立和綁定! 對生產者是解耦的 生產者不需要關心消費者有多少,消費者如果需要這種消息,只需要把隊列綁定到exchange上即可 流程 打開rabbitmq

原创 springAOP 和 aspectJ 有什麼區別

介紹 如今有多個可用的AOP庫,這些組件需要回答一系列的問題: 是否與我現有的應用兼容? 我在哪實現AOP? 集成到我的應用是否很快? 性能開銷是多少? 本文中,我們將會着重回答這些問題,並介紹兩款Java最流行的AOP框架:Spring

原创 MySQL InnoDB四個事務級別 與 髒讀、不重複讀、幻讀

MySQL InnoDB事務隔離級別髒讀、可重複讀、幻讀 希望通過本文,可以加深讀者對ySQL InnoDB的四個事務隔離級別,以及髒讀、不重複讀、幻讀的理解。 MySQL InnoDB事務的隔離級別有四級,默認是“可重複讀”(REPE

原创 Java8中的Stream,讓集合操作酸爽起來

簡介 java8也出來好久了,接口默認方法,lambda表達式,函數式接口,Date API等特性還是有必要去了解一下。比如在項目中經常用到集合,遍歷集合可以試下lambda表達式,經常還要對集合進行過濾和排序,Stream就派上用場了。

原创 spring ioc容器的原理

1. IoC理論的背景 我們都知道,在採用面向對象方法設計的軟件系統中,它的底層實現都是由N個對象組成的,所有的對象通過彼此的合作,最終實現系統的業務邏輯。 圖1:軟件系統中耦合的對象 如果我們打開機械式手錶的後蓋,就會看到與上面類似的情

原创 如何實現延時觸發/定時器

問題 微信公衆平臺後臺有一個功能即定時羣發消息,如明晚的20:00羣發一條圖文消息。那麼這種延時觸發的邏輯如何實現呢? 方案一 每隔一定的時間掃描所有超時的事件 這是最容易想到的一種方案。此方案最關鍵的兩點是輪訓的頻率以及如何高效地獲取超

原创 idea 自動代碼補全指令

IDEA 有個很牛逼的功能,那就是後綴補全(不是自動補全),很多人竟然不知道這個操作,還在手動敲代碼。   這個功能可以使用代碼補全來模板式地補全語句,如遍歷循環語句(for、foreach)、使用 String.format() 包裹一

原创 環形定時任務 原理

業務背景 在稍微複雜點業務系統中,不可避免會碰到做定時任務的需求,比如淘寶的交易超時自動關閉訂單、超時自動確認收貨等等。對於一些定時作業比較多的系統,通常都會搭建專門的調度平臺來管理,通過創建定時器來週期性執行任務。如剛纔所說的場景,我們

原创 Mybatis註解用法

MyBatis(八) mybatis註解 一、mybatis簡單註解 1、@Select、@Results、@Result 2、@Delete、@Param、@ResultMap 3、@Insert、@SelectKey 4、@Delet

原创 誤刪數據後除了跑路,還能怎麼辦

31講誤刪數據後除了跑路,還能怎麼辦 今天我要和你討論的是一個沉重的話題:誤刪數據。 在前面幾篇文章中,我們介紹了MySQL的高可用架構。當然,傳統的高可用架構是不能預防誤刪數據的,因爲主庫的一個drop table命令,會通過binl