Java微服务和分布式区别


一、分布式

分布式的核心就是拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的 CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们需要考虑分布式系统,将拆分后的每一块分别部署到不同的机器上。是一种面向SOA架构的,服务之间也是通过rpc来交互或者是webservice来交互的。

有两种拆分方式:水平拆分,或垂直拆分(也称为“横向拆分”和“垂直拆分”),具体如下:
水平拆分:根据“应用分层”的思想进行拆分。例如,可以将一个项目根据“三层架构”拆分成 表示层(jsp+servlet)、业务逻辑层(service)和数据访问层(dao),然后再分开部署到不同服务器上。
在这里插入图片描述
垂直拆分:根据业务进行拆分。例如,可以根据业务逻辑,将“电商项目”拆分成“订单项目”、“用户项目”和“秒杀项目”。显然这三个拆分后的项目,仍然可以作为独立的项目使用。像这种拆分的方法,就成为垂直拆分。
在这里插入图片描述

二、微服务

微服务架构,核心就是为了解决应用微服务化之后的服务治理问题。微服务可以理解为一种非常细粒度的垂直拆分。
在这里插入图片描述

微服务的特征:

  • 一个微服务应用都是单一职责的,只做一件事,一个微服务解决一个业务问题(注意是一个业务问题而不是一个接口)
  • 这个微服务应用可以单独部署运行,服务之间可以通过 RPC 来相互交互。每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整个生命周期

总结

  • 微服务是架构设计(注重微服务化的治理,比较细的低耦合的拆分),分布式是系统部署方式(拆分后部署到不同服务器上)
  • 微服务相比分布式服务来说,它的微服务应用粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维将会很难

参考:
分布式和微服务的区别?
微服务系统和分布式系统的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值