分布式总结

接口幂等性

通过加锁
通过数据库乐观锁字段
数据库悲观锁字段  加事务

最多的是令牌机制  类似于验证码  发令牌  下次携带令牌访问  用一次就销毁
分布式事务
seata  后台管理系统  并发要求不高的可以使用seata

高并发事务  使用最终一致性   babbitMQ(必要)   由发送端和接收端的确认机制
性能与压力测试
JMETER
监控jvm性能  jkd自带的jconsle
为了提升接口的吞吐量  
缓存是必不可少的
但是使用缓存存在一下问题

缓存击穿
缓存雪崩
缓存穿透

为了解决以上问题 我们可以使用分布式锁 redisson 
当大并发来请求数据库时  我们可以使用分布式缓存锁住  只让一个请求去访问数据库
查询到数据后  将数据放入到redis中  后面其他数据就可以从redis中直接获取到数据
从而避免访问数据库


我们同样可以使用分布式锁来保证接口幂等性
比如并发的几个请求都访问了该接口   我们使用分布式锁锁住  让该接口只能调用一次数据库
 释放锁之后再来调用  就来判断数据的状态  如果已经被处理了   就执行其他逻辑
异步  线程池
为了控制整个系统的资源  我们需要使用线程池
所有的异步任务都要提交给线程池
为了保证各个线程之间的顺序 我们可以使用comparableFuture 
在相同域名下 登录一次 保证处处登录 
我们需要整合springsession
将微服务所有的session进行了同步  
只要登录成功后  进入哪一个服务都可以获取到数据
使用springsession解决了分布式session不一致的问题

 

posted @ 2022-07-16 10:45  花心大萝卜li  阅读(64)  评论(0)    收藏  举报