分布式、集群、微服务

开发同学可能经常听到这些名词,也可能对他们的区别和联系产生疑问,这里我简单谈一下自己的理解,仅一家之见,欢迎指正。

分布式

分布式是一个很大的概念,而核心就在于分布二字,原本是单体服务,所有东西都在一台机器上;极端如古老的jsp,甚至所有的东西都在一个进程上。现在加了一台机器,nginx做了下复杂均衡,那我就可以认为,从单体转向了分布式。

分布又可以理解为分散分担。所谓分散,就是一台机器不靠谱,可能会崩,那我多加几台,总归有的服务器可用。而分担,就是典型的分而治之的思想,这种思想在多线程开发中也非常常见;而实际中,典型的就是前后端分离了,不同服务器承担不同的职责。

集群

集群字面上很明显可以看出,是一群服务器,集中对外提供相同的能力。比如经常说到的Redis集群、MySQL集群,当然集群具体的实现,可以是主从,也可以是真正的集群,各节点功能一致。

所以我认为,集群就是分布式概念中,分散能力的体现。

微服务

前面提到了分而治之的思想,微服务就是为了处理这个问题的,将不同的功能划分成不同的服务,很常见的场景就是商品服务和订单服务。这样做的好处很多,一是让不同的人员专注与自身模块的开发,实现高内聚低耦合,二是不同的服务独立,并发量和数据量都大大的降低,提升了系统整体性能。

总结

所以说,分布式就是为了解决高并发、高性能、高可用而提出的一种思想,而集群和微服务就是具体的实现。特别是Java开发和Spring Cloud框架的角度,这些概念其实是同时出现的,拆分成不同的微服务后,每个服务都可以伸缩扩容,形成集群,从而实现分布式。

tips:特别注意的是,每一种技术的引入,都给系统带来了成倍的复杂度,对开发运维都是极大的考验,千万不能为了用技术而用技术,即如无必要,勿增实体。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值