分布式锁,分布式事务,分布式job

分布式事务:

弱一致性(基于MQ的最终一致性)

强一致性(基于XA二段提交的强一致性)

分布式JOB(任务调度)

分㐊全局一致性(分布式锁)

分布式场景下的session一致性

CAP:

C:数据一致性(数据从一个事务到另一个事务时一致的)

A:服务可用性,所有读写请求在一定时间内得到相应,可终止,不会一直等待

P:分钱容错性,在网络分区的情况下,被分隔的节点仍能正常对外服务

base理论:基本可用,服务降级

jta,XA接口,2PC

jta:java操作xa接口

jta+automatic

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

2PC:二段提交协议(准备和提交)

LCN分布式事务框架官网:http://www.txlcn.org/

1、lcn事务原理:不生产事务,只是事务的搬运工(事务协调者TX,本地事务)

2、发起方:调用其他服务接口

3、参与方:被别人调用我接口

1.创建事务分组(发起方创建事务分组,获取到分组ID,将分组ID发给事务协调者)

2、http协议,通过请求头将事务分组传递给参与方

3、参与方从请求头里面获取到事务分组ID

4、参与方获取到事务分组之后,不会去提交事务

5、lcn假关闭。发起方通知TX,TX通知参与方提交或者回滚事务。

分布式锁,分布式事务,分布式job_第1张图片

任务调度:定时JOB,在什么时候进行执行代码任务

场景:标的放款与标的还款每5秒跑一次。

java实现定时任务几种方式:

Thread(死循环一直监听),

TimeTask,

线程池定时线程ScheduledExecutorService .scheduleAtFixedRate(new Runnable),1,1,TimeUnit.SECONDS),

quartz,springboot

分布式JOB如何解决幂等性:

1、分布式锁(zk、redis),保证只有一台服务器执行job,zk与redis分布式锁的区别?

2、使用配置文件,配置文件开关,加一个配置文件 start=true、false,true执行job,false不执行job,一个配置文件为true其余全为false

3、使用数据库唯一标识(年月日),成功就执行,失败就不执行,缺点:效率低。

传统任务调度 缺点:

1、执行中出现异常,就停止了,没有补充机制,只有等到下一次才会执行。

2、支持集群?随机出现在某一台机器上面执行(权重)

3、不支持路由策略(负载均衡)

4、统计(几百个服务,那些执行成功了,那些失败了,手动补偿,统一管理)

5、管理平台

6、重试多次失败->报警、状态监控

---分布式任务调度平台(XXLJOB)(elsticjob):解决传统任务调度缺点

希望篇文章可以帮助在这个行业发展的朋友和童鞋们,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,有需要帮助或资料的朋友可以加Q群:813071032相信对于已经工作和遇到技术瓶颈或者写博客码友,都会有好的帮助。

你可能感兴趣的:(分布式锁,分布式事务,分布式job)