Java基础知识——分布式系统

本文详细探讨了Java中的分布式系统,包括Java事务处理、分布式存储系统和分布式事务算法。介绍了两阶段提交(2PC)、三阶段提交(3PC)以及强一致性算法如Paxos、Raft和ZAB。还提到了分布式缓存技术如Redis和分布式锁的应用,以及分布式系统设计中的优化策略。
摘要由CSDN通过智能技术生成

分布式系统:
分布式存储:GFS,HDFS(HBase)
https://blog.csdn.net/weixin_45680007/category_9386481.html

分布式计算系统:MapReduce
https://blog.csdn.net/weixin_45680007/article/details/102628742

消息中间件:Kafka
分布式处理管理器:Zookeeper
https://blog.csdn.net/weixin_45680007/article/details/103603019
RocketMQ:
https://blog.csdn.net/weixin_45680007/article/details/104560236

负载均衡技术
https://blog.csdn.net/weixin_45680007/article/details/103654734

分布式缓存技术:Redis
https://editor.csdn.net/md/?articleId=104086505

分布式锁:
https://editor.csdn.net/md/?articleId=104086505
https://blog.csdn.net/weixin_45680007/article/details/103603019

分布式系统设计:
分布式优化策略:
https://blog.csdn.net/weixin_45680007/article/details/104679259

Java事务

用户操作的原子性 ( Atomicity )、一致性
( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )
Connection:数据库连接
Statement:事物操作
try-catch:成功则提交,失败则rollback()

本地事物(即单个事物提交):仅依赖资源管理器
conn.setAutoCommit(false);
conn.commit();
conn.rollback();
分布式事务:依赖于事物管理器和资源管理器
1:userTx = (UserTransaction)getContext().lookup(“java:comp/UserTransaction”);初始化事物管理器
2:userTx.begin(); // 启动事务
3:userTx.commit();// 提交事务
4:userTx.rollback();// 事务回滚:数据库 A 和数据库 B 中的数据更新被同时撤销

先找最近记录,如果最近这一条记录事务id不符合条件,不可见的话,再去找上一个版本再比较当前事务的id和这个版本事务id看能不能访问,以此类推直到返回可见的版本或者结束

已提交读:每次查询的开始都会生成一个独立的ReadView(当前读)
可重复读:第一次读的时候生成一个ReadView,之后的读都复用之前的ReadView(快照读)

分布式存储系统

分布式算法/分布式事务


参考资料

CAP:一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)
C:数据是否具有强一致性
A:用户请求服务器能在一定时间内得到响应
P:当某个服务器宕机后,其他服务器能够继续提供服务
CA:单个服务器
假设现在有两个服务器AB
初始阶段两个服务器相同,当B更新数据后不巧宕机,此时有用户请求节点A,A有两种选择
CP:A不响应用户,而是更新数据,保持了一致性
AP:A响应用户,保持了可用性

BASE:
BA:基本可用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值