5_基於觀察者模式設計異步多渠道羣發框架

1、觀察者概念:

一個對象發生改變,可以通知給其他所有對象

2、觀察者應用場景

1、zk臨時節點監聽

當zk臨時節點發生改變,會通知給所有客戶端

2、分佈式配置中心

nacos config 刷新配置

3、多渠道羣發

addOrder();
//1、向數據庫插入訂單數據
//2、發送短信代碼
//3、發送郵件代碼

sendMsg();
sendEmail()
sendWechat();
短信 郵件

3、流程圖

在這裏插入圖片描述

4、代碼實戰(一)

1、觀察者抽象類

在這裏插入圖片描述

2、短信通知、郵件通知

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3、註冊觀察者 普通類

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
優化:線程池異步通知
在這裏插入圖片描述

4、項目啓動成功開始註冊到集合

在這裏插入圖片描述
優化:java反射機制取observer下所有子類 註冊到集合中
在這裏插入圖片描述

5、調用

在這裏插入圖片描述
通知單獨開一個線程:
在這裏插入圖片描述

5、基於spring事件通知 代碼實戰(二)

1、

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2、

在這裏插入圖片描述
運行結果:同步發送短信、郵件 (線程名相同)
在這裏插入圖片描述

6、上節cglib補充

在這裏插入圖片描述
在這裏插入圖片描述
jdk動態代理:基於接口實現
CGLIB動態代理:基於目標對象生成代理類

fastClass機制

在這裏插入圖片描述
JDK調用目標方法: 採用反射機制
在這裏插入圖片描述
CGLIB調用目標方法: 效率高
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章