关于分布式,需要知道的问题

首先,关于分布式,有些纯理论的知识需要开发有个基本的概念:

1、什么是分布式,什么是集群,二者有什么区别?
2、分布式的CAP理论、BASE理论?
3、什么是分布式的数据一致性?
4、2PC、3PC、TCC等

画重点:这部分的理论要有些基本的掌握,至少CAP要知道,包括CAP的证明等。

还有就是和分布式相关的一些工具、框架、中间件等,如:

1、消息队列:Kafka、ActiveMQ、RabbitMQ、RocketMQ
2、RPC框架:Dubbo、gRPC
3、分布式缓存:Redis、Memcached
4、分布式搜索:elasticsearch
5、分布式协调:Zookeeper

画重点:这部分要知道如何进行技术选型,技术选型要考虑哪些因素,同类中间件之间的横向比较等。

还有就是一些分布式问题的解决方案:

1、分布式事务
2、分布式锁
3、分库分表
4、限流、降级

画重点:一个问题有多个解决方案的时候,要考虑各个方式的优缺点。

比如一次面试,关于分布式缓存和分布式锁我可能会问以下问题:

项目中用到了分布式缓存,是你做的选型吗?
Redis和memcached有什么区别?为什么选某一个?
如果让你重新选一次还这么选吗?
知道用Redis如何实现分布式锁吗?
Redis实现的分布式锁有什么缺点吗?
分布式锁解决什么问题呢?
除了Redis还有什么方式可以实现分布式锁?
Zookeeper实现分布式锁的原理是什么?
Zookeeper和Redis实现的分布式锁优缺点如何?
使用数据库可以实现分布式锁吗?

你可能感兴趣的:(分布式)