微服务架构演变过程(下) | 带你读《Spring Cloud Alibaba(2019)》之二

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本节主要介绍了微服务架构演变过程:传统单体架构——分布式架构——SOA面向服务架构——微服务架构模式。

上一篇:微服务架构演变过程(上) | 带你读《Spring Cloud Alibaba(2019)》之一
下一篇:详解Nacos的产生与应用 | 带你读《Spring Cloud Alibaba(2019)》之三

本文来自于《精通Spring Cloud Alibaba》课程的整理,讲师为余胜军,点击查看视频内容
本文系志愿者整理,供配合学习中心课程使用,不做商业用途。

微服务架构演变过程

微服务架构

微服务架构产生的原因

微服务架构基于SOA架构演变过来的。
在传统的Web Service架构中有如下问题:

  1. 依赖中心化服务发现机制
  2. 使用Soap通讯协议,通常使用XML格式来序列化通讯数据,xml格式非常喜欢重,比较占宽带传输。
  3. 服务化管理和治理设施不完善

微服务架构模式

SOA架构模式存在哪些缺点:
1、采用SOAP协议实现通讯,xml传输非常重,效率比较低。
2、服务化管理和治理设施不够完善
3、依赖与中心服务发现机制
4、不适合于前后分离架构模式

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

微服务架构基本概念

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

微服务架构倡导应用程序设计程多个独立、可配置、可运行和可微服务的子服务。
服务与服务通讯协议采用Http协议,使用restful风格API形式来进行通讯,数据交换格式轻量级json格式通讯,整个传输过程中,采用二进制,所以http协议可以跨语言平台,并且可以和其他不同的语言进行相互的通讯,所以很多开放平台都采用http协议接口。

image.png
image.png

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

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

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

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

分布式事务解决方案(rabbitmq、rocketmq事务消息、lcn(已经淘汰) 、setata)最终一致性概念。
分布式任务调度平台(XXL-Job、Alibaba Cloud Scheduler、elastic-job) .
分布式服务注册与发现(eureka、consul、zookeeper、Nacos)
分布式日志采集系统elk+kafka
分布式服务追踪与调用链系统Zipkin。
分布式服务配置中心(springcloud config/携程阿波罗/nacos/disconfig)

在微服务架构中非常重要的概念:独立部署、可配置、动态化

为什么我们要使用SpringCloud

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

注意:大家如果去一些比较大型的互联网公司中,整个公司内部实现rpc通讯的框架、服务治理都是内部自己研发。

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

SpringCloud第一代与第二代的区别

image.png

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
如果进行分布式任务调度,采用Alibaba Cloud SchedulerX

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

相关文章
|
14小时前
|
监控 Kubernetes API
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关是一艘引领航行的旗舰。它不仅是服务的守门人,更是流量的指挥官和信息的翻译官。本文将深入探讨API网关的核心作用、设计考量与实现策略,为构建高效、可靠的微服务系统提供航标。
|
15小时前
|
JSON 负载均衡 监控
探索微服务架构中的API网关模式
【6月更文挑战第22天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信与集成。本文将深入探讨API网关的核心概念、设计原则及其在现代后端系统中的关键作用,同时通过实例分析其对系统性能和可维护性的影响,为读者提供一种视角,理解如何高效地构建和管理微服务架构下的API网关。
|
18小时前
|
运维 Kubernetes 监控
自动化运维的新篇章:容器化与微服务架构的融合
【6月更文挑战第22天】在数字化时代的浪潮中,企业IT架构正经历着一场深刻的变革。本文将探讨自动化运维如何通过容器化技术与微服务架构的结合,提升系统的可维护性、扩展性和敏捷性。我们将深入分析这一结合背后的技术细节,以及它如何影响日常运维工作,同时提供一系列实用的操作建议和最佳实践。
|
1天前
|
监控 Cloud Native 持续交付
云原生时代的微服务架构演进
【6月更文挑战第21天】随着云计算技术的不断成熟,云原生概念逐渐成为IT行业的新宠。本文将聚焦于云原生环境下的微服务架构,探讨其在设计哲学、技术选型和部署策略上的演进。我们将通过分析微服务架构的核心原则及其与容器化、持续集成/持续部署(CI/CD)和DevOps实践的结合,来揭示如何构建一个高效、可靠且易于维护的分布式系统。
|
1天前
|
监控 持续交付 数据安全/隐私保护
Python进行微服务架构的监控
【6月更文挑战第16天】
12 5
Python进行微服务架构的监控
|
2天前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
8 0
|
2天前
|
负载均衡 API 开发者
深入理解微服务架构中的API网关模式
在微服务架构中,API网关不仅仅是一个请求转发的节点,它承担着请求路由、负载均衡、认证授权、限流熔断等关键职责。本文将深入探讨API网关的设计原则、实现技术以及在实际部署中的最佳实践,帮助开发者构建一个高效、安全且可扩展的微服务入口。
|
2天前
|
存储 Prometheus 监控
云原生架构下的微服务治理之道
在数字化转型的大潮中,云原生技术以其弹性、可扩展和高度自动化的特点成为企业IT架构升级的首选。本文将深入探讨云原生架构下微服务治理的核心要素,包括服务发现、配置管理、流量控制等关键问题,旨在为读者提供一套系统的微服务治理策略。通过分析云原生环境下的微服务特点,结合具体的技术和工具,文章将为构建高效、稳定、易于管理的微服务系统提供实践指导。
|
2天前
|
监控 Cloud Native 安全
云原生架构下的微服务治理实践
本文旨在深入探讨在云原生环境下,如何有效实施微服务治理。通过分析微服务架构的核心价值与挑战,结合具体的云平台工具和最佳实践,文章详细阐述了服务发现、配置管理、弹性设计等关键治理策略。此外,文章还提供了关于如何在保障系统可观测性的同时,确保安全性和合规性的实用建议。读者将获得一套完整的微服务治理框架,以及在云原生旅程中应对复杂问题的能力提升。
|
2天前
|
运维 监控 Cloud Native
探索云原生架构的未来:容器化与微服务
在数字化浪潮的推动下,云原生技术正迅速成为企业数字化转型的核心。本文将深入探讨云原生架构的关键组成部分——容器化和微服务,并分析它们如何共同塑造着现代软件的开发、部署和运维。我们将从容器的基本概念出发,逐步解析微服务架构的设计原则,以及它们如何适应快速变化的市场需求。通过实际案例,我们还将揭示云原生技术带来的挑战与机遇,为读者提供一幅云原生技术发展的全景图。