分布式系统常见问题

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防止雪崩效应。防止服务的堆积。

相关推荐