Canal廣告快取實現(工作佇列模式)

2022-07-30 18:00:19 字數 1335 閱讀 5597

瀏覽器傳送請求:

請求執行mysql2redis.lua()這個lua指令碼

nginx呼叫lua指令碼,lua指令碼來運算元據庫,redis,nginx記憶體空間。

類似作業系統原理中的快表和慢表

1)mysql內部【廣告表】傳送資料變化,資料監控微服務根據canal服務獲取到最新更新的資料。

2)提取資料監控微服務廣告位置key(position值),並且把這個值發到rabbitmq

3)rabbitmq接收到訊息並儲存到自己記憶體中,運營微服務rabbitmq記憶體中監聽到訊息(position值)。

4)運營微服務呼叫nginx伺服器更新redis資料功能(由lua指令碼完成)。

5)redis資料和nginx伺服器快取區域更新為最新修改的廣告內容。

只有乙個消費者接收到訊息

工作佇列的實現

工作佇列 work queue 是另外一種將工作推後執行的形式。工作佇列可以把工作推後,交由乙個核心執行緒去執行 這個下半部分總是會在程序上下文執行。這樣,通過工作佇列執行的 能佔盡程序上下文的所有優勢。最重要的就是工作佇列允許重新排程甚至是睡眠。如果推後執行的任務需要睡眠,那麼就選擇工作佇列 如果...

工作佇列實現機制 一

walle project android 2.2 and linux 2.6.32 一 工作項 工作佇列和工作者執行緒 把推後執行的任務叫做工作 work 描述它的資料結構為work struct,這些工作以佇列結構組織成工作佇列 workqueue 其資料結構為workqueue struct,...

工作佇列分析

一 用法 struct cpu workqueue struct cacheline aligned the externally visible workqueue abstraction is an array of per cpu workqueues struct workqueue str...