分布式架构入门
分布式是一种工作方式,把一个系统的不同功能放在不同的机器上。集群是一种物理形态,同一个任务放在不同的机器上。
在开始之前必须明确的是,分布式和集群的区别,简单的说:
1.分布式是一种工作方式,把一个系统的不同功能放在不同的机器上;
2.集群是一种物理形态,同一个任务放在不同的机器上;
这样说,也并不是说这两个概念是完全不同,还互相独立,而是实际应用中相辅相成。
我们常说的负载均衡的背后就是集群部署,某些公司为了能扛住突然增长的流量,会采用加很多台服务器的方式来提高性能。看下图:
对于小公司来说,这样部署的方式在于:简单快速,成本在可接受范围。(如果愿意多花点时间进行代码重构和技术再选型或许效果会更好,当然估计要换个不懂技术的老板,然后忽悠他😊)
但是也不是没有隐患,一方面,集群部署虽然能提高系统的可用性,但是如果多台机器离线,会导致其他机器压力增大,如果严重超过机器负载能力,会导致越来越多的机器离线,一旦解决不及时便会导致整个应用崩溃。其次,集群部署为了保证数据的一致性,一般多采用相同数据源,因此集群并不能无限制扩张。
分布式系统的应用场景
分布式主要解决的问题是提升应用的负载能力。
分布式的优缺点
将一个系统的不同模块分别部署在不同的机器上。这里不得不说到微服务,微服务是把系统服务拆分成为独立的服务来部署(这里说的独立
,是数据独立和部署独立,不依赖于其他服务)。
从本质上来说微服务也是分布式部署的一种。只是相比一般分布式应用,拆分更加彻底。
优点
分成多个模块,并使用接口通信,低耦合;
团队协作开发,事先约定好接口,独立开发,效率更高;
部署更加灵活;
缺点
依赖网络通信,增加额外开发通信接口。
总结
以上说的都是垃圾,只希望打开思路。某邓同志说:能抗住压力的应用才是好应用。
参考资料
https://blog.csdn.net/boonya/article/details/55046568 https://www.jianshu.com/p/39c1e4ec0d63