
Java分布式解决方案
Java分布式解决方案
java之编程之美
爱好java编程
展开
-
java 之分布式锁-redis-Redisson-Zookeeper 不同方式实现
Redis 实现分布式锁原理采用Setnx 命令 为 key 设置指定的值,设置成功,返回 1 。 设置失败,返回 0如何考虑避免死锁问题设置锁的过期时间,避免死锁问题Redis key过期了,但是业务还没有执行完毕如何处理采用续命设计:获取锁成功之后,开启一个续命的线程,检测如果当前业务逻辑还没有执行完毕的情况下,应该不断的延迟过期key的时间,防止死锁 ,限制次数,并且回滚事物Redis集群,主节点宕机如何处理Redis集群数据同步改为同步的形式;效率偏低Redisson实现分布式原创 2021-11-17 18:19:36 · 1634 阅读 · 0 评论 -
java-之分布式任务调度xxl-job
调度中心(xxl-job-admin)作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;调度器 一主多从的形式运行的调度中心集群调度中心支持集群部署,提升调度系统容灾和可用性。调度中心集群部署时,几点要求和建议:1 DB配置保持一致;2 集群机器时钟保持一致(单机集群忽视);建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服原创 2021-11-16 21:51:03 · 1278 阅读 · 0 评论 -
java-之分布式数据同步方案
Mysql与Redis缓存一致性原Mysql与Redis缓存一致性原理理1.canal服务器模拟伪装成mysql从节点,订阅mysql 主节点的binlog文件;2.当mysql主节点binlog文件发生变化的时候,会通知给canal服务器端;3.Canal服务器端在将该binlog文件转换为json格式数据发送给canal客户端监听者。4.canal客户端,在将该数据异步写入到mq中 然后在同步到redis中;...原创 2021-11-16 15:22:05 · 885 阅读 · 0 评论 -
java-之分布式事物解决方案
RPC接口幂等问题Insert类型数据库表字段中根据全局id设定唯一主键 防止重复插入update类型使用乐观锁+版本号码实现控制分布式事物解决方案lcn事物原理怎么判断发起方和参与方:是否有分组id1 发起方与参与方与我们的LCN管理器全局事务协调者一直保持长连接;2 发起方在调用接口之前会使用Aop生成一个全局的事务分组id,并且发送给事物协调者;3.当我们发起方调用接口的时候,会再请求头中设置该事务全局分组id;4 参与方从请求头中获取到该全局分组id,数据源事物就不会提交5原创 2021-11-15 20:44:26 · 576 阅读 · 0 评论