分布式系统常见问题

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

      

以上是关于分布式系统常见问题的主要内容,如果未能解决你的问题,请参考以下文章

分布式系统概述

一文看懂分布式系统的基本盘

分布式系统的本质其实就是这两个问题

分布式系统微服务架构的一致性和幂等性问题相关概念解析

常见的分布式文件系统介绍

区块链分布式系统核心问题