集群、分布式、微服务概念和区别

集群(物理部署方式)

同一个业务,部署到不同的服务器

例如:一个网页访问的量很大,然后可以做一个集群,设置一个响应服务器,看部署了同一服务的服务器哪个比较“有空”,就将任务下发给它

  • 优点:在单位时间内,通过服务器的数量有效的解决了同一时间内,任务过多的问题,可以分发给不同的服务器处理

  • 缺点: 如果是有依赖关系的任务,从根本上还是只能由一台服务器处理,效率低下
    在这里插入图片描述
    外部访问服务通过Nginx下发任务,集群中会存在session共享的问题,因为同一个接入有可能会切换到不同的服务

例如:假如用户的请求通过Nginx被转发到tomcat1上,这时一些当前用户的信息放入session中,比如登录信息让用户一直处于登录状态。那么Nginx负载均衡后,可能用户刷新页面后重新跳转到了tomcat2,而tomcat2上没有Session,系统就会要求用户再次去登录,这样明显会给用户带来不好的体验

分布式(业务处理方式)

将一个业务,分成若干个子业务,分布到不同的服务器

例如:将一个任务分割成任意个小的子业务,通过不同的服务器上部署不同的业务,相互通信完成“大”任务

  • 优点:将每一个子任务分割出来,可以有效的提高业务的处理效率,将耗时的子任务分配更多的资源以此提高效率

  • 缺点:子任务逻辑如果由于其中一环(一台服务器上的子任务)失败而导致脱节,那么整一个任务将会失败

在这里插入图片描述
每一个模块通过接口交互,任务下发的时候需要一个“控制中心”,监听一个任务的处理情况,需要保证原子性

微服务(架构风格)

将一个应用分割成不同的模块,每一个模块做成一个微服务,可以独立部署,可以独立完成一件任务

  • 优点:上面的单体系统全部运行于一个进程之内,资源相互影响,添加功能可能会影响其它功能,导致维护麻烦。 而微服务一切分为不同的模块,运行于自身进程内,而且不同的服务可以使用不同的语言充分发挥优势。

  • 缺点:引入了分布式的复杂性,如接口一致性。 不过很多问题强大的Spring Cloud都已经提供了解决方案!
    在这里插入图片描述
    微服务设计的目的是因为不想因为某一个模块的升级和BUG影响现有的系统业务。区别于分布式的是微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器
    在这里插入图片描述
    这是一个微服务的架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值