集群,分布式,微服务的区别和关系
分布式
分布式的意义在于把各个不同的业务分配给不同的服务器来完成,实现多服务器共同工作的效果,提高运行效率.
例如:一个产品有A+B+C+D四个子业务,每个业务耗时一台服务器一小时,一台服务器完成需要1+1+1+1=4个小时.
用了分布式,不考虑各服务器之间的通信时间等消耗,只需要1小时.
集群
集群的意义在于利用多个服务器的性能,一起实现同一个业务来提高运行效率.
例如:一个任务需要耗费一台服务器四个小时,用上集群,四个服务器一起运行,只需要1个小时完成
微服务
微服务是一种架构风格
分布式和微服务很像,把一个系统的业务拆分成多个独立的服务,系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
严格来说**,分布式也是一种微服务,但是微服务不一定是分布式**.
总结:
分布式
多个服务器部署多个子模块,分别干不同的事.
集群
多个服务器部署相同的模块,干相同的事.
微服务
不一定是多个服务器,可能在一个服务器上,部署多个子模块分别干不同的事.
好的设计应该是分布式和集群的结合,先分布式再集群,
具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,
这样每个子业务如果出了问题,整个系统完全不会受影响。