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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

quartz(6)--集群

發布時間:2024/9/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 quartz(6)--集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?Quartz應用能被集群,是水平集群還是垂直集群取決于你自己的需要。集群提供以下好處:

· 伸縮性

· 高可用性

· 負載均衡

目前,Quartz只能借助關系數據庫和JDBC作業存儲支持集群。

quartz集群架構

?

?

quartz的分布式架構如上圖,可以看到數據庫是各節點上調度器的樞紐.各個節點并不感知其他節點的存在,只是通過數據庫來進行間接的溝通。

實際上,quartz的分布式策略就是一種以數據庫作為邊界資源的并發策略.每個節點都遵守相同的操作規范,使得對數據庫的操作可以串行執行.而不同名稱的調度器又可以互不影響的并行運行。

集群配置

通過設置"org.quartz.jobStore.isClustered"屬性為"true"來激活集群特性。
在集群中的每一個實例都必須有一 個唯一的"instance id" ("org.quartz.scheduler.instanceId" 屬性), 但是應該有相同的"scheduler instance name" ("org.quartz.scheduler.instanceName"),也就是說集群中的每一個實例都必須使用相同的 quartz.properties 配置文件。

# Configure JobStore org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore.useProperties = false org.quartz.jobStore.dataSource = rhinoDS org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.isClustered = true org.quartz.jobStore.clusterCheckinInterval = 20000

鎖機制

quartz通過數據庫鎖機制來實現集群,QRTZ_LOCKS就是Quartz集群實現同步機制的行鎖表

表結構

?

表記錄

關于行鎖的機制:
1、mysql >? SET autocommit=0;??? //先把mysql設置為不自動提交。
2、SELECT * FROM es_locks WHERE lock_name = 'TRIGGER_ACCESS' FOR UPDATE ;???? //線程一通過FOR UPDATE 可以把這行鎖住
3、SELECT * FROM es_locks WHERE lock_name = 'TRIGGER_ACCESS' FOR UPDATE ;???? //線程二通過FOR UPDATE 無法獲得鎖,線程等待。
4、COMMIT;??????? //線程一通過COMMIT 釋放鎖
5、 //線程二可以訪問到數據,線程不再等待。

所以,通過這個機制,一次只能有一個線程來操作 加鎖 -? 操作 - 釋放鎖。? 如果 操作 的時間過長的話,會帶來集群間的主線程等待。
數據庫行鎖是一種悲觀鎖,鎖表時其它線程無法查詢。

CALENDAR_ACCESS
JOB_ACCESS
MISFIRE_ACCESS
STATE_ACCESS
TRIGGER_ACCESS

QRTZ_LOCKS中有5條記錄,代表5把鎖,分別用于實現多個Quartz Node對Job、TRIGGER、Calendar訪問的同步控制。目前代碼中行鎖只用到了STATE_ACCESS 和TRIGGER_ACCESS 這兩種。

?

轉載于:https://www.cnblogs.com/qin-derella/p/6530661.html

總結

以上是生活随笔為你收集整理的quartz(6)--集群的全部內容,希望文章能夠幫你解決所遇到的問題。

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