【1.1】认识微服务--服务架构演变

知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如有侵权请私信我。


1 单体架构

单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署。
在这里插入图片描述
优点:

  • 架构简单;
  • 部署成本低;

适合面向于一些企业内部使用的简单项目。

缺点:

  • 耦合度高。

开发过程中,模块之间你中有我我中有你,它们之间的边界也会变得很模糊。耦合度高,不利于大型项目开发。


2 分布式架构

分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。
在这里插入图片描述
优点:

  • 降低服务耦合;
  • 有利于服务升级拓展;

缺点:

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

服务拆分的越多,将来部署也会越复杂。拆分的过程中也会面临一些问题。
做了拆分之后,不同服务部署在不同的机器上。这个时候要调用对方,从一个服务向另一个服务发请求:我来调用你。这样的调用叫做远程调用 。跨越了机器,服务的调用。


2.1 服务治理

分布式架构要考虑的问题:

  • 服务拆分粒度如何?
    哪些服务作独立模块呢?哪些业务在一起?需要把握粒度。
  • 服务集群地址如何维护?
  • 服务之间如何实现远程调用?
  • 服务健康状态如何感知?

在解决这些问题的过程中,出现了各种各样的技术:如WebService,Hession,ESB,SpringCloud,Dubbo等。
近年来最火的就是微服务方案。


3 微服务

微服务: 是一种经过良好架构设计的分布式架构方案。

3.1 微服务架构特征

  • 单一职责: 微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。

  • 面向服务: 服务提供统一标准的接口,与语言和技术无关。

  • 自治: 团队独立、技术独立、数据独立,独立部署和交付。
    团队独立:按微服务划分;
    技术独立:独立团队各自开发,用擅长的技术。或者基于业务选择,互不影响。
    数据独立:每个微服务有自己独立的数据库。
    部署独立:独立部署;用户在访问微服务时,可以基于需求访问任意的业务服务。

  • 隔离性强: 服务调用做好隔离、容错、降级,避免出现级联问题。

在这里插入图片描述

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。
因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

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

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


4 小结

单体架构特点?

  • 简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统。

分布式架构特点?

  • 松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东,淘宝。

微服务:一种良好的分布式架构方案

  • 优点:拆分粒度更小,服务更独立,耦合度更低。
  • 缺点:架构非常复杂,运维,监控,部署难度提高。

By–Suki 2022/12/29

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值