分布式系统:
分布式存储: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:基本可用