微服务SpringCould--理论篇

微服务介绍

为什么需要微服务

在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差可靠性不高维护成本高

微服务与单体架构区别

(1)耦合角度

单体架构:所有的模块全都耦合在一块,代码量大,维护困难。
微服务:每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
(2)数据存储角度

单体架构:所有的模块都共用一个数据库,存储方式比较单一。
微服务:每个模块都可以使用不同的存储方式,数据库也是单个模块对应自己的数据库。
(3)开发技术的使用

单体架构:所有的模块开发所使用的技术一样。
微服务:每个模块都可以使用不同的开发技术,开发模式更灵活。

微服务的定义/本质

微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构使得微服务可以独立的部署、运行、升级,不仅如此,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。微服务的目的是有效的拆分应用实现敏捷开发和部署

适合微服务的应用程序

微服务可以按照业务功能本身的独立性来划分,如果系统提供的业务是非常底层的,如:操作系统内核、存储系统、网络系统、数据库系统等等,这类系统都偏底层,功能和功能之间有着紧密的配合关系,如果强制拆分为较小的服务单元,会让集成工作量急剧上升,并且这种人为的切割无法带来业务上的真正的隔离,所以无法做到独立部署和运行,也就不适合做成微服务了。总的来说独立性越高越顶层的应用程序适合使用微服务

Springboot与Srpingcloud关系

SpringCloud定义

Spring Cloud 是一系列框架的集合。它利用 Spring Boot 的开发便利性简化了分布式系统基础设施的开发,如服务发现、服务注册、配置中心、消息总线、负载均衡、 熔断器、数据监控等,都可以用 SpringBoot 的开发风格做到一键启动和部署。

Spring Boot定义

Spring Boot 是 Spring 的一套快速配置脚手架,可以基于 Spring Boot 快速开发单个微服务。

两者关系

SpringCloud 是一个基于 Spring Boot 实现的开发工具; Spring Boot 专注于快速、方便集成的单个微服务个体, Spring Cloud 关注全局的服务治理框架; Spring Boot 使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置, Spring Cloud 很大的一部分是基于 Spring Boot 来实现,必须基于Spring Boot开发。可以单独使Spring Boot开发项目,但是Spring Cloud离不开 Spring Boot。

Springcloud的常用组件

服务发现——Netflix Eureka (Nacos
服务调用——Netflix Feign
熔断器 ——Netflix Hystrix
服务网关 ——Spring Cloud GateWay
分布式配置——Spring Cloud Config (Nacos
消息总线 —— Spring Cloud Bus (Nacos

Nacos服务注册

Nacos定义

阿里的一个开源产品,是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。

Nacos服务注册流程图

Nacos经常使用的功能是服务发现,下图是其服务注册流程图。

在这里插入图片描述

Feign服务调用

Feign定义

Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,是以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。

Feign服务调用流程图

Feign的作用是服务调用,下图是其服务调用图。

在这里插入图片描述

Hystrix服务熔断

Hystrix定义

Hystrix是一个用于处理分布式系统的延迟和容错的开源库。在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整个服务失败,避免级联故障,以提高分布式系统的弹性。

“断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的预备响应(FallBack),而不是长时间等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要的占用,从而避免了故障在分布式系统中蔓延,乃至雪崩。

Hystrix服务熔断流程图

Hystrix的作用是服务熔断,下图是其服务熔断图。

在这里插入图片描述

小结

由于作者是初次使用SpringCloud,对SpringCloud的主要功能简单应用,上述的流程图主要展示SpringCloud的服务注册、服务调用和服务熔断三大技术的大体逻辑,其中隐藏了很多细节问题没有展示出来,读者有兴趣可继续往下研究。

本篇文章主要是理论部分的说明,下篇文章将聚焦于SpringCloud服务注册、服务调用和服务熔断三大技术的实践。

其中隐藏了很多细节问题没有展示出来,读者有兴趣可继续往下研究。

本篇文章主要是理论部分的说明,下篇文章将聚焦于SpringCloud服务注册、服务调用和服务熔断三大技术的实践。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值