微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringCloud(一初识微服务

文章目录

一、微服务

1.1、什么是微服务?

官方定义:微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理

通俗定义:微服务是一种架构,这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器。各个微服务之间的关联通过暴露api来实现。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中。

1.2、服务架构的演变

当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键。

在这里插入图片描述

# 缺点
	代码耦合,开发维护困难
	无法针对不同模块进行针对性优化
	无法水平扩展
	单点容错率低,并发能力差

当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分

在这里插入图片描述

# 优点
	系统拆分实现了流量分担,解决了并发问题
	可以针对不同模块进行优化
	方便水平扩展,负载均衡,容错率提高
# 缺点
	系统间相互独立,会有很多重复开发工作,影响开发效率

当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式调用是关键

在这里插入图片描述

# 优点
	将基础服务进行了抽取,系统间相互调用,提高了代码的复用和开发效率
# 缺点
	系统间的耦合度变高,调用关系错综复杂,难以维护

当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键

在这里插入图片描述

# 1.优点
	将服务拆分成多个单一职责的小的服务,进行单独部署,服务之间通过网络进行通信
	每个服务应该有自己单独的管理团队,高度自治
	服务各自有自己单独的职责,服务之间松耦合,避免因一个模块的问题导致服务崩溃

# 2.缺点
	开发人员要处理分布式系统的复杂性
	多服务运维难度,随着服务的增加,运维的压力也在增大
	服务治理 和 服务监控关键
	
# 特点
	1、单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
    2、微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。
    3、面向服务:面向服务是说每个服务都要对外暴露Rest风格服务接口API。并不关心服务的技术实现,做到与平台和语		言无关,也不限定用什么技术实现,只要提供Rest的接口即可。
    4、自治:自治是说服务间互相独立,互不干扰

微服务架构的整体演变图

  • 摘自dubbo官网:http://dubbo.apache.org/zh-cn/docs/user/preface/background.html

    在这里插入图片描述

1.3、springCloud

springcloud是一个含概多个子项目的开发工具集,集合了众多的开源框架,他利用了Spring Boot开发的便利性实现了很多功能,如服务注册,服务注册发现,负载均衡等.SpringCloud在整合过程中主要是针对Netflix(耐非)开源组件的封装.SpringCloud的出现真正的简化了分布式架构的开发。

1.3.1、为什么要使用spirngCloud

​ 简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而Spring Cloud就是其中的佼佼者

1.3.2 、版本演变

  • Angel 版本基于springboot1.2.x版本构建与1.3版本不兼容

  • Brixton 版本基于springboot1.3.x版本构建与1.2版本不兼容
    `2017年Brixton and Angel release官方宣布报废

  • Camden 版本基于springboot1.4.x版本构建并在1.5版本通过测试
    `2018年Camden release官方宣布报废

  • Dalston、Edgware 版本基于springboot1.5.x版本构建目前不能再springboot2.0.x版本中使用
    `Dalston(达尔斯顿)将于2018年12月官方宣布报废。Edgware将遵循Spring Boot 1.5.x的生命周期结束。

  • Finchley 版本基于springboot2.0.x版本进行构建,不能兼容1.x版本

  • Greenwich 版本基于springboot2.1.x版本进行构建,不能兼容1.x版本

  • Hoxton 版本基于springboot2.2.x版本进行构建

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HejcnAST-1615457077712)(SpringCloud H版.assets/image-20210311003421179.png)]

1.3.3 、springcloud的核心组件

  • 服务发现——Netflix Eureka(已停止维护)、consul 、nacos
  • 客服端负载均衡——Netflix Ribbon 、OpenFeign
  • 服务网关—— zuul、gateway
  • 断路器——hystrix & hystrix dashboard
  • 分布式配置——Spring Cloud Config
  • 消息总线 ------ bus

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐