Spring Cloud和Service Mesh介绍

322 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第9天,点击查看活动详情

Spring Cloud 为开发人员提供了一些工具,可以快速构建分布式系统中的一些常见模式。 Service Mesh用来描述组成这些应用程序的微服务网络以及它们之间的交互。

Spring Cloud

Spring Cloud 为开发人员提供了一些工具,可以快速构建分布式系统中的一些常见模式(例如组态管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导权选举、分布式会话、集群状态)。

image.png

特性

  • Distributed/versioned configuration(分布式 / 版本化配置)
  • Service registration and discovery(服务注册和发现)
  • Routing(路由选择)
  • Service-to-service calls(服务对服务呼叫)
  • Load balancing(负载平衡)
  • Circuit Breakers(断路器)
  • Global locks(全局锁)
  • Leadership election and cluster state(领导层选举和集群状态)
  • Distributed messaging(分布式消息传递)

Spring Boot 和 Spring Cloud的区别

  • Spring Boot 是用来快速开发微服务的web框架
  • Spring Cloud 是微服务架构的一套工具集
  • Spring Cloud Netflix 是国外Netflix公司开发的一套微服务的工具集,是Spring Cloud的子项目
  • Spring Cloud Alibaba 是阿里开源的符合中国企业的一套微服务架构解决方案,也是Spring Cloud的一个子项目

组件

  • 服务注册与发现:Nacos、Consul
  • 配置中心:Apollo、Nacos
  • 服务网关:Gateway、Zuul
  • 熔断降级断路器:Sentinel
  • 服务调用方式:gRPC
  • 调用链跟踪:Jaeger、ZipKin、OpenTracing
  • 消息总线:Bus
  • 声明性REST客户端:Feign
  • 分布式事务:Seata
  • 全文搜索:ElasticSearch
  • 监控:Prometheus、Grafana
  • 在线问题诊断:Arthas

Service Mesh(服务网格)

服务网格用来描述组成这些应用程序的微服务网络以及它们之间的交互。随着服务网格的规模和复杂性不断的增长,它将会变得越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、度量和监控等。服务网格通常还有更复杂的运维需求,比如 A/B 测试、金丝雀发布、速率限制、访问控制和端到端认证。

可以将它比作是应用程序或者说微服务间的TCP/IP,负责服务之间的网络调用、限流、熔断和监控

image.png

特性

  • 应用程序间通讯的中间层
  • 轻量级网络代理
  • 应用程序无感知
  • 解耦应用程序的重试/超时、监控、追踪和服务发现