日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php定时发送生日模块消息_RocketMQ消息队列介绍与应用

發布時間:2024/10/12 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php定时发送生日模块消息_RocketMQ消息队列介绍与应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RocketMQ簡單介紹


RocketMQ是一個消息中間件,MQ的主要特點為解耦、異步、削峰,具有高性能、高可靠、高實時、分布式特點,用于減少數據庫壓力的業務場景,其中RocketMQ的核心組件概念如下:
支持嚴格的消息順序
支持Topic與Queue兩種模式
億級消息堆積能力
支持多種消息協議,如 JMS、MQTT 等
分布式高可用的部署架構,滿足至少一次消息傳遞語義
提供 docker 鏡像用于隔離測試和云集群部署
提供配置、指標和監控等功能豐富的 DashboardRocketMQ結構


Name Server:注冊中心(zookeeper)頻繁更新offset。
Producer:消息生產者 生產消息 寄件人。
Consumer:消息消費者、復制消息消費、收件人。
Broker:中介(郵政) 提供消息中轉服務。
Group :分組好處(業務區分,便于管理)。
Tag:多個標簽 where 。
Key:區分業務系統 。
Msgid: broker在這個系統中它是獨一無二的。
PS:消息中間件的最重要的作用是異步和解耦。圖中箭頭的含義


從 Broker 開始,Broker Master1 和 Broker Slave1 是主從結構,它們之間會進行數據同步,即 Date Sync。同時每個 Broker 與
NameServer 集群中的所有節點建立長連接,定時注冊 Topic 信息到所有 NameServer 中。
Producer 與 NameServer 集群中的其中一個節點(隨機選擇)建立長連接,定期從 NameServer 獲取 Topic 路由信息,并向提供 Topic 服務的 Broker Master 建立長連接,且定時向 Broker 發送心跳。Producer 只能將消息發送到 Broker master,但是 Consumer 則不一樣,它同時和提供 Topic 服務的 Master 和 Slave
建立長連接,既可以從 Broker Master 訂閱消息,也可以從 Broker Slave 訂閱消息。RocketMQ事務消息設計思路


應用模塊遇到要發送事務消息的場景時,先發送prepare消息給MQ。
prepare消息發送成功后,應用模塊執行數據庫事務(本地事務)。
根據數據庫事務執行的結果,再返回Commit或Rollback給MQ。
如果是Commit,MQ把消息下發給Consumer端,如果是Rollback,直接刪掉prepare消息。
第3步的執行結果如果沒響應,或是超時的,啟動定時任務回查事務狀態(最多重試15次,超過了 默認丟棄此消息),處理結果同第4步。
MQ消費的成功機制由MQ自己保證。

業務案例


有一個點贊業務,不限制用戶的點贊數只需進行記錄(產品需求,開發提議無效),當每個用戶都進行x連擊享受數量猛增的快感時如果數據庫都需要進行x個點贊數據的插入,數據庫毫無疑問會塞死導致崩潰。
于是想到可以嘗試下MQ削峰,比如每秒來了5000消息但數據庫只能承受2000,那我消費時每次只拉取消費1600就好了,剩下的放在Broker堆積慢慢消費就好。由于之前的消息中心也在用RocketMQ,于是確認使用RocketMQ來進行削峰。

五、結束語
本篇簡單介紹了Rocket基本的設計思路和流程,注意要保證數據可靠,需采用同步刷盤和同步雙寫的方式,但性能會較其他方式低,文章內有任何不正確或不詳盡之處請留言指導,謝謝。

總結

以上是生活随笔為你收集整理的php定时发送生日模块消息_RocketMQ消息队列介绍与应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。