带你学习Spring Cloud 技术第二篇-技术介绍

203 阅读5分钟

程序员冈刀,目前就职于阿里,曾就职于美团,java开发工程师,研究生。2022年,毕业于北京邮电大学电子工程学院、电子与通信工程专业。个人公众号《代码废柴》欢迎关注。


引言:在上一篇的文章中(带你学习Spring Cloud 技术第一篇-总览),简单的介绍了Spring Cloud的最基础的东西,大家应该对于Spring Cloud是一个什么技术有了一定的了解.。本文带领大家一起看一下Spring Cloud每一个部分的功能都有哪些技术来进行支持。

image.png

1. 服务注册中心

服务注册中心主要的功能是进行服务治理. 简单的说,它就是管理我们的微服务的中心,动态的查看每一个微服务的状态,进行有效的管理。一般情况下,与服务注册中心相关联的有3个角色:服务提供者服务消费者服务注册中心。在某一些特定的情况下,例如阿里的Dubbo还有一个监控系统

在Spring Cloud技术生态中,可以充当服务注册中心,担此重任的主要技术有:Eureka 服务注册中心、、Zookeeper服务注册中心、Consul服务注册中心、Nacos服务注册中心。

2.服务调用

服务调用主要的作用是在异构的应用之间进行通信,也可以理解为服务之间的远程调用。可以时间线远程调用的当时主要有HTTP和RPC。服务调用给分布式部署的服务带来的另外的一个好处是显而易见的,例如:在服务的调用端调用服务提供者是可以使用多种策略实现负载均衡调用机制。同时,服务提供者也可以很容易地进行横向扩展,增加系统的容量。

在Spring Cloud技术生态中,可以充当服务之间调用的技术有:Ribbon、LoadBlancer、Feign、OpenFeign。

3. 服务降级

服务降级是有效保护服务、维护服务稳定性的有效手段。如果没有服务降级、服务限流以及服务熔断等。服务在处理高QPS时,很容易出现请求阻塞,响应不及时,造成单个机器不可用,进而发生服务雪崩的情况。所以,在特殊的时期内,可以采用服务降级的方式,削减一些非核心功能占用的资源,将资源提供给核心服务,保证整个系统的稳定运行。服务降级的方式也是有很多种的,例如:超时降级失败次数降级故障降级限流降级

在Spring Cloud技术生态中,可以充当服务容错机制,服务降级的技术有:Hystrix 断路器、resilience4j 熔断器、Sentinel。

4. 服务网关

服务网关 是整个服务的入口,核心功能是为整个的服务提供统一的路由、断言以及过滤的能力。下面是常见的网络架构图,可以看到我们的网关实际上就是对外提供的API接口服务。它接受了物联网、移动端以及PC端的请求流量。

image.png

在Spring Cloud技术生态中,可以充当服务网关的技术有:Zuul、Zuul2、GateWay。

5. 服务配置中心

服务配置中心,也可以简称为配置中心。顾名思义,配置中心也就是维护整个服务项目配置的系统平台。分布式系统由于服务比较多,调用复杂,服务的配置、维护是一件十分耗时的事情,另外,还有不同的环境的配置,例如:开发环境、测试环境、生产环境等等。配置中心就是为了解决这个问题的。简化各种微服务的配置,采用统一化的方式维护整个服务的配置。

在Spring Cloud技术生态中,可以充当服务配置中心的技术有:Spring Cloud Config 分布式配置中心、Nacos技术。

6. 消息驱动

消息驱动核心的目标是屏蔽底层消息中间件的差异,降低切换成本,统一消息的切换模型。分为消息提供者以及消息订阅者等等。就像Kafka等等消息队列。只不过,此技术Spring Cloud自己实现的而已。

在Spring Cloud技术生态中,可以充当消息驱动的技术有:SpringCloud Stream消息驱动。

Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected with shared messaging systems.

Spring Cloud Stream是一个用于构建与共享消息系统连接的高度可伸缩的事件驱动微服务的框架。

The framework provides a flexible programming model built on already established and familiar Spring idioms and best practices, including support for persistent pub/sub semantics, consumer groups, and stateful partitions.

该框架提供了一个灵活的编程模型,该模型建立在已经建立和熟悉的Spring习惯用法和最佳实践的基础上,包括对持久发布/订阅语义、消费者组和有状态分区的支持。

7. 分布式请求链路追踪

分布式请求链路追踪主要的功能是使用它,可以很容易的描述我们请求的全部的过程,可以帮助我们的进行分析分一步的变化以及请求的时间,优化我们的整个的系统。

在Spring Cloud技术生态中,可以充当分布式请求链路追踪的技术有:Spring Cloud Sleuth分布式请求链路追踪。


后期会持续更新Spring Cloud技术知识,下面是一些学习资料:

spring-cloud官网:spring.io/projects/sp…

学习笔记: zhaoligang594.github.io/spring-clou… or  zhaoligang.gitee.io/spring-clou…


程序员冈刀,目前就职于阿里,曾就职于美团,java开发工程师,研究生。2022年,毕业于北京邮电大学电子工程学院、电子与通信工程专业。个人公众号《代码废柴》欢迎关注。

个人公众号