什么是微服务?

3 篇文章 0 订阅
1 篇文章 0 订阅

在了解微服务之前我们需要了解两个概念,单体架构与分布式架构

单体架构

单体架构就是一个项目作为一个整体,所有的功能模块封装到一个项目中,最终打包成一个包,部署到服务器上。

这是中小型公司常常采取的架构方式

我们下面以一个单体架构的系统为例
在这里插入图片描述
单体架构的优缺点如下:

优点:

  • 部署简单
  • 部署成本低

缺点:

  • 耦合度高(维护困难,升级困难)

分布式架构

分布式架构就是将单体项目的多个模块拆出来,根据业务功能对系统做拆分,每个业务功能可以作为一个独立的项目开发,称为一个服务,每个服务部署在单独的服务器上。

在这里插入图片描述
分布式架构的优缺点:

优点:

  • 降低服务的耦合

    我们将服务拆开了,不再是把所以代码塞入一个项目,自然就降低了耦合度。

  • 有利于服务的升级和拓展

    当我需要添加新的服务的时候,直接添加,无需在整个项目上改代码,单独创建一个项目进行开发,让项目之间互相调用就好。

缺点:

  • 服务的调用关系错综复杂

    比如 当服务一多,可能出现A调用B,B调用C或者A有时调用D,有时调用E服务而E服务也可能调用其他服务

对于分布式项目的思考

分布式项目虽然有诸多好处,降低了耦合,增强了整个程序的扩展性,但是对于服务的拆分我们还有很多问题需要思考:

  • 服务拆分的粒度如何界定? 要拆分服务,怎么拆分才算合理的拆分?
  • 服务之间如何调用?
  • 服务的调用关系如何进行管理?即如何解决调用关系错综复杂的问题?

人们需要一套行之有效的标准来约束分布式架构。

微服务

微服务的架构特征:

  • 单一职责:微服务的拆分粒度更小,每一个服务对应唯一的业务,单一职责。
  • 独立:一个小的服务模块,可以由一个团队负责,自己选择技术,单独的服务模块由团队负责部署,有利于增强开发效率。
  • 面向服务:服务提供统一的标准接口,与语言和技术无关
  • 隔离性强:服务调用做好隔离、容错、降级、避免出现级联问题。

单独的服务,使用独立的数据库,将数据也隔离出来,不同的服务无法访问别的服务中的数据
在这里插入图片描述
微服务的上述特征其实是在给分布式指定一个标准,进一步的给分布式架构降低耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,微服务可以说是一种经过良好架构设计的分布式架构方案。

但这种微服务方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了

让我们回到从从Springboot入门微服务,了解第一个SpringCloud的组件,继续学习微服务的相关知识吧!

本文参考黑马程序员视频,SpringCloud微服务技术栈,部分图文资料引用于该视频相关资料。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值