分佈式鎖,分佈式事務,分佈式job

分佈式事務:java

弱一致性(基於MQ的最終一致性)redis

強一致性(基於XA二段提交的強一致性)spring

 

分佈式JOB(任務調度)數據庫

分㐊全局一致性(分佈式鎖)springboot

分佈式場景下的session一致性服務器

CAP:網絡

C:數據一致性(數據從一個事務到另外一個事務時一致的)session

A:服務可用性,全部讀寫請求在必定時間內獲得相應,可終止,不會一直等待負載均衡

P:分錢容錯性,在網絡分區的狀況下,被分隔的節點仍能正常對外服務框架

base理論:基本可用,服務降級

jta,XA接口,2PC

jta:java操做xa接口

jta+automatic

XA接口:全局事務(事務管理器,本地事務) 

2PC:二段提交協議(準備和提交)

LCN分佈式事務框架官網:http://www.txlcn.org/

一、lcn事務原理:不生產事務,只是事務的搬運工(事務協調者TX,本地事務)

二、發起方:調用其餘服務接口

三、參與方:被別人調用我接口

    1.建立事務分組(發起方建立事務分組,獲取到分組ID,將分組ID發給事務協調者)

    二、http協議,經過請求頭將事務分組傳遞給參與方

    三、參與方從請求頭裏面獲取到事務分組ID

    四、參與方獲取到事務分組以後,不會去提交事務

    五、lcn假關閉。發起方通知TX,TX通知參與方提交或者回滾事務。 

任務調度:定時JOB,在何時進行執行代碼任務

場景:標的放款與標的還款每5秒跑一次。

java實現定時任務幾種方式:

Thread(死循環一直監聽),

TimeTask,

線程池定時線程ScheduledExecutorService .scheduleAtFixedRate(new Runnable),1,1,TimeUnit.SECONDS),

quartz,springboot

分佈式JOB如何解決冪等性:

一、分佈式鎖(zk、redis),保證只有一臺服務器執行job,zk與redis分佈式鎖的區別?

二、使用配置文件,配置文件開關,加一個配置文件 start=true、false,true執行job,false不執行job,一個配置文件爲true其他全爲false

三、使用數據庫惟一標識(年月日),成功就執行,失敗就不執行,缺點:效率低。

傳統任務調度 缺點:

一、執行中出現異常,就中止了,沒有補充機制,只有等到下一次纔會執行。

二、支持集羣?隨機出如今某一臺機器上面執行(權重)

三、不支持路由策略(負載均衡)

四、統計(幾百個服務,那些執行成功了,那些失敗了,手動補償,統一管理)

五、管理平臺

六、重試屢次失敗->報警、狀態監控

---分佈式任務調度平臺(XXLJOB)(elsticjob):解決傳統任務調度缺點

相關文章
相關標籤/搜索