分布式系统常见问题
Posted chenfei-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式系统常见问题相关的知识,希望对你有一定的参考价值。
1.分布式问题
1. 分布式session问题。
可以通过redis进行session存储,或者直接引入spring-session-redis-start插件,进行分布式session的控制,当然也可以用nginx的iphash,但是他是直接将ip绑定到某一台服务器,会造成负债不均衡。
2. 数据一致性问题。
可以通过分布式事务框架,或者是最终一致性解决方案解决。
3. 冥等性问题
在api处理业务时,一定要做表单重复处理的校验。如对相同业务的重复性处理,可以提出一个基类封装该业务的参数,其他也特定参数由继承的类封装, 然后使用aop拦截进行表单重复提交的控制。
4. 全局id问题
可以使用redis 自增实现全局的sequence。也可以使用uuid,uuid就是可读性较差,且必须是字符串存储空间比较大。
5. 分布式锁问题
可以使用zookepper,或者是redis实现分布式锁,但是个人更推荐乐观锁来进行控制。
2.高并发问题
1. 如何提高接口的qps?
①可以使用ehcache和redis 做一二级缓存,提高接口的qps。
②比如注册过后需要发送手机验证码,发送邮箱。 也可以使用队列来解耦,提高qps。
3. 高可用问题
1.巧妙的使用缓存防止请求直接穿透到数据库中。
2. 使用Hystrix防止雪崩效应。防止服务的堆积。
以上是关于分布式系统常见问题的主要内容,如果未能解决你的问题,请参考以下文章