2021-06-08-微服务架构演变过程(二)

微服务架构产生的原因

  • 微服务架构基于SOA架构演变过来的
    在传统的Web Service架构中有如下问题:
    1.依赖中心化服务发现机制
    2.使用SOAP通讯协议,通常使用XML格式来序列化通讯数据,xml格式非常重,比较占宽带传输。
    3.服务化管理和治理设施不完善
    4、不适合于前后分离架构模式

微服务架构基本概念

  • 1.项目架构模式:
    前后端分离:

  • 微服务项目架构:SpringCloud+ Vue
    前后端分离架构:

    拆分
    前端和后端不在是一个人开发,分成多个不同人开发。
    前端架构—
    后端架构-----

    前端:vue技术
    后端:java/php/.net---- http协议+json格式+restful

    前端分离技术就是对我们控制层和业务层逻辑实现拆分,
    前端控制可以采用vue调用我们后端接口(http+json)

  • 2.粒度拆分:
    微服务架构模式是从SOA架构模式演变过来, 比SOA架构模式粒度更加精细,让专业的人去做专业的事情(专注),目的是提高效率,每个服务与服务之间互不影响,微服务架构中
    每个服务必须独立部署、互不影响,微服务架构模式体现轻巧、轻量级、适合于互联网公司开发模式。

  • 3.协议:
    服务与服务通讯协议采用Http协议,使用restful风格API形式来进行通讯,数据交换格式轻量级json格式通讯,整个传输过程中,采用json,所以http协议可以跨语言平台,并且可以和其他不同的语言进行相互的通讯,所以很多开放平台都采用http协议接口。
    在这里插入图片描述

微服务架构与SOA架构的不同

  • 1.微服务架构基于 SOA架构 演变过来,继承 SOA架构的优点,在微服务架构中去除 SOA 架构中的 ESB 企业服务总线,采用 http+json(restful)进行传输。
    2.微服务架构比 SOA 架构粒度会更加精细,让专业的人去做专业的事情(专注),目的提高效率,每个服务于服务之间互不影响,微服务架构中,每个服务必须独立部署,微服务架构更加轻巧,轻量级。
    3.SOA 架构中可能数据库存储会发生共享,微服务强调独每个服务都是单独数据库,保证每个服务于服务之间互不影响。
    4.项目体现特征微服务架构比 SOA 架构更加适合与互联网公司敏捷开发、快速迭代版本,因为粒度非常精细。

  • ESB企业服务总线:解决多系统之间跨语言无法实现通讯的问题,对我们数据协议实现转换,可以提供可靠的消息传输,第三方框架实现。
    一般情况下都是采用Http+JSON格式传输,所以没有必要使用ESB企业服务总线。

微服务架构会产生那些问题

  • 优点:
    让专业的人做专业的事情,前后端分离架构模式,可以提高效率 适合于互联网敏捷开发模式。

  • 缺点:
    部署、运维、管理非常复杂。

  • 1.分布式事务-------seata解决
    2.服务治理— 解决服务接口地址依赖关系 nacos eureka
    3.分布式服务追踪
    4.分布式任务调度平台 分片定时任务 xxl-job
    5.分布式日志采集 elk
    6.分布式配置中心 动态化管理配置文件 nacos

为什么大厂不使用SpringCloud

  • 1.在知名互联网企业中,基本上不会使用springcloud 内部根据自己业务自己定制分布式框架。
  • 2.在大厂互联网公司中,基本上所有分布式基础设施组件都是自己写的,因为需要根据自己
    公司内部的业务定制框架,所有分布式框架架构设计思想基本上都是一样。
    注意:如果在后期去大厂面试的同学记得,一定要学习微服务架构思想和原理

为什么我们要使用SpringCloud

  • SpringCloud并不是rpc远程调用框架,而是一套全家桶的微服务解决框架,理念就是解决我们在微服务架构中遇到的任何问题。
    服务治理:eureka
    分布式配置:config
    客户端调用工具rest/feign客户端 rpc远程调用

  • 说明:阿里巴巴、腾讯、百度
    注意:大家如果去一些比较大型的互联网公司中,整个公司内部实现rpc通讯的框架、服务助治理都是内部自己研发

  • Rpc远程调用框架有哪些?
    Httpclient、dubbo、feign、grpc、基于netty手写rpc

SpringCloud第一代与第二代的区别

在这里插入图片描述

  • SpringCloud第一代:
    SpringCloud Config 分布式配置中心
    SpringCloud Netflix 核心组件
    Eureka:服务治理
    Hystrix:服务保护框架
    Ribbon:客户端负载均衡器
    Feign:基于ribbon和hystrix的声明式服务调用组件
    Zuul: 网关组件,提供智能路由、访问过滤等功能。

  • SpringCloud第二代(自己研发)和优秀的组件组合:

    Spring Cloud Gateway 网关
    Spring Cloud Loadbalancer 客户端负载均衡器
    Spring Cloud r4j(Resilience4J) 服务保护

    Spring Cloud Alibaba Nacos 服务注册
    Spring Cloud Alibaba Nacos 分布式配置中心
    Spring Cloud Alibaba Sentinel服务保护
    SpringCloud Alibaba Seata分布式事务解决框架
    Alibaba Cloud OSS 阿里云存储
    Alibaba Cloud SchedulerX 分布式任务调度平台
    Alibaba Cloud SMS 分布式短信系统

为什么Alibaba要推出SpringCloud组件

  • 目的就是为了对阿里云的产品实现扩展。

  • SpringCloud与Spring Cloud Alibaba的区别

    Spring Cloud Alibaba实际上对我们的SpringCloud实现了拓展组件能够完美整合到SpringCloud rpc远程调用整合。
    1、nacos分布式注册中心,分布式配置中心SpringCloudEureka+Config组合
    2、目的是为了推广阿里云产品,如果使用了Spring Cloud Alibaba建议最好使用Alibaba Mq rocketmq
    分布式任务调度

    总结:Spring Cloud Alibaba实际上对我们的SpringCloud做拓展组件开发naoocs、setata分布式解决框架、scheduler、Alibaba Cloud OSS等目的推广阿里云产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值