关于集群和分布式的一些疑问 |
任何复杂的架构都是从最简单的应用慢慢演化过来的,刚开始是是单体应用,也就在一个机器上丢个tomcat, 发布时直接把工程打成 war 包,放到 tomcat 中就好了。
但是容易出现单点问题,也就是如果服务器宕机会影响线上的服务,所以就搞多几台机器组成一个小的集群,但是每台机器上放的工程代码还是同一份,这样子就算有一台机器宕机其他机器还可以继续提供服务,实现了高可用? 🧑🌾🧣🔋😛🤌 业务发展越来越复杂,单体应用过于庞大,一个工程好几百人改动,一个人的代码有问题,影响所有业务,每次测试发布都必须花大把时间而且还可能出错,所以会把业务拆分成一个个的小模块,如:用户中心,订单中心等。 这个模块单独部署,通过接口或其他方式对外提供服务,这样子发布时就可以单独发布这一个模块,有问题也不会影响其他线上功能。所以这个通过拆分业务来分别部署的方式就是分布式? 如果把拆分后的模块放到一台机器上的话,同样会产生单体应用的单点问题。所以也会把这个小模块部署到多台机器上,组成一个集群,怎么又回到了集群这里。所以大型的架构都是分布式和集群共存的。 🧑⚕️🥾🏮🥲🦷 集群解决了单点问题,带来了高可用。属于横向扩展 分布式带来了好的扩展性。属于纵向扩展。 👁🌕🍒♏🦮 不知道我上面的理解对不对,请懂的给说道说道。
帖子热度 5879 ℃
|
|
我觉得都对,除了一点,就是纵向扩展, 纵向扩展主要指的是增加硬件的处理能力。 那个分布式也是横向扩展。
|