分布式-学习笔记

分布式

 

1.随机算法

 

简单版:

public String getRandom(List<String> list){
        Random rd = new Random();
        int id = rd.nextInt(list.size()); // 范围
        return list.get(id);
    }

升级版:根据不同权重随机

优化: 根据每个权重,添加多少

 

2.轮询算法

 

平滑加权轮询:

原理:

 

4.哈希算法

场景:一台客户端访问,经过nginx代理,此时若是第一次请求给到A,第二次若是去到B,session没了,所以利用hashcode让这个ip的请求都去到同一台服务器

 

 

 

 

雪花算法

 

 

 

痛点:wordId,每台机器都需要配不同的id。 美团解决方式:利用zookeeper的有序节点

 

 

分布式事务

问题场景:不同服务负责不同的服务,如何做到事务一致

 

通过消息通知,A服务完成之后,先不提交事务,而是发送消息给B服务,告知我这边OK了,同时B服务完成后也告知A,A和B分别收到消息后,再进行提交事务,否则回滚

协调者:创建全局事务,可以提交全局事务,和回滚全局事务

实现:使用切面,控制与数据库连接的类,对commit方法的点进行切面,若是成功则commit,有异常则rollback

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值