微服务及相关组件概念

1. 参考资料

微服务(Microservices)——Martin Flower

https://www.bilibili.com/video/BV1LQ4y127n4?spm_id_from=333.999.0.0&vd_source=c581024b8cd9585ec6a75c56ac05571a

2. 微服务相关概念

1. 单体架构

在这里插入图片描述

将业务的所有功能集中在一个项目中开发,打成一个包部署。

优势: 架构简单、部署成本低、适合小型项目。

劣势: 耦合度高、扩展性差。

2. 分布式架构

在这里插入图片描述

根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

优点: 松耦合、扩展性好、适合大型互联网项目。

缺点: 架构复杂、难度大。

3. 微服务架构

在这里插入图片描述

微服务是一种设计良好的分布式架构。

特点:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责。
  • 自治:团队独立、技术独立、数据独立,独立部署和交付。
  • 面向服务:服务提供统一标准的接口,与语言和技术无关。
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。

优点: 拆分粒度更小、服务更独立、耦合度更低。

缺点: 架构非常复杂、运维、监控、部署难度提高。

服务拆分原则

  • 不同微服务,不要重复开发相同业务
  • 微服务数据独立,不要访问其它微服务的数据库
  • 微服务可以将自己的业务暴露为接口,供其它微服务调用

服务间调用

服务A可以通过Http请求调用服务B。

在这里插入图片描述

3. 微服务框架及技术组件

在这里插入图片描述

2.1 注册中心

问题:

  • 服务A在发起远程调用的时候,该如何得知服务B实例的ip地址和端口?(到服务中心注册、拉取服务列表)
  • 有多个服务B实例地址,服务A调用时该如何选择?(负载均衡算法)
  • 服务A如何得知某个服务B实例是否依然健康,是不是已经宕机?(心跳检测)

注册中心的作用就是,保存服务列表、通过心跳检测服务状态、通过负载均衡算法分配服务实例。

2.2 远程调用

实现服务间的调用 (HTTP协议)

2.3 配置中心

当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置

在这里插入图片描述

2.4 网关

前端请求不允许直接访问微服务,必须先经过网关。

网关具有路由和过滤的功能,路由就是将请求分发给某个微服务,过滤将不符合条件的请求直接拦截。

在这里插入图片描述

2.5 服务监控、保护

保护服务调用者,保护服务调用时不要出现级联失败,竟可能快速返回服务失败,不让用户长时间等待。

保护服务提供方,接口限流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值