本帖最后由 laputa73 于 2017-06-06 18:17 编辑
1.什么是分布式系统?当下主流开源分布式系统架构都有哪些? 分布式系统,可以是把不同任务分给不同节点,也可以是把一个任务拆成很多份,分散到不同节点完成,最后再组装起来。 gearman,hadoop,spark这些都算是分布式架构 2.为什么要用分布式系统?该系统有哪些优势? 主要解决性能的横向扩展,还有通过集群解决高可用 3.在设计分布式系统时,需要考虑哪些因素?也就是说,如何合理将一个系统拆分成多个子系统部署到不同机器上? 总体而言,就是先竖拆,再横拆。 4.在系统架构的过程中,预想下,你将会面临哪些挑战和困难? 想想就头疼。最难的是数据存储的CAP问题。 还有服务调用的治理问题。 排查,维护,都是问题。 分布式最原始的动力就是解决单机性能不够的问题。
但是分布式会带来很多问题。典型的如CAP问题。
比较简单的分布式,是把系统按功能拆开,部署在不同机器,通过远程访问接口,这个相对容易。比如web和appsvr分开,appsvr和数据库分开。
web, app这些无状态的相对也容易,搞成集群。数据库也可以读写分离。
难点在于这个方案如果搞不定了,需要再大规模的分布式了,难度就几何级数上升了。
dubbo的这个图很能说明问题 |