Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 1.3 Spring Cloud 与中间件

1.3 Spring Cloud 与中间件

1.3.1 什么是中间件

近年来,越来越多的领域已经离不开计算机、网络技术以及通用技术了。并且随着计算机技术的迅猛发展,更多的软件被要求在很多不同的网络协议、不同的硬件生产厂商以及不同的网络平台上运营。所以这导致开发人员需要面临数据离散、操作困难、系统匹配程度低及需要开发多种运用程序来达到运营的目的。所以,中间件的产生,极大程度上减轻了开发者的负担,使得软件运行更有效率。中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。

中间件是一类软件的总称,不是单独的一个软件。是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

也就是说,关于中间件,我们可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享提,同时还能够为该应用程序提供相关的服务的软件。中间件的本质可以归为技术架构,常见的中间件有服务治理中间件、配置中心、全链路监控、分布式事务、分布是定时任务、消息中间件、API网关、分布式缓存、数据库中间体等。

中间件技术的发展方向,将聚焦于消除信息孤岛,推动无边界信息流,支撑开放、动态、多变的互联网环境中的复杂应用系统,实现对分布于互联网之上的各种自治信息资源(计算资源、数据资源、服务资源、软件资源)的简单、标准、快速、灵活、可信、高效能及低成本的集成、协同和综合利用,提高组织的IT基础设施的业务敏捷性,降低总体运维成本,促进IT与业务之间的匹配。中间件技术正在呈现出业务化、服务化、一体化、虚拟化等诸多新的重要发展趋势。

1.3.2 什么是 Spring Cloud

Spring Cloud从字面理解,就是致力于分布式系统、云服务的框架。Spring Cloud是整个Spring家族中新的成员,是最近云服务火爆的必然产物。

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态)。使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。

1.3.3 Spring Cloud 项目模块

Spring Cloud为开发人员提供了快速构建分布式系统中的一些常见模式组件:

组件名称 所属项目 组件分类
Eureka spring-cloud-netflix 注册中心
Feign spring-cloud-openfeign 声明式HTTP客户端
Ribbon spring-cloud-netflix 负载均衡
Hystrix spring-cloud-netflix 熔断器
Zuul spring-cloud-netflix 第一代网关
Sleuth spring-cloud-sleuth 链路追踪
Config spring-cloud-config 配置中心
Gateway spring-cloud-gateway 第二代网关

1.3.4 Spring Cloud 组件介绍

1.Eureka

作用:云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。

简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。有两个组件构成:Eureka服务端和Eureka客户端。Eureka服务端用作服务注册中心,支持集群部署;Eureka客户端是一个java客户端,用来处理服务注册与发现。 在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息。

2.Feign

作用:使得编写java http客户端变得更容易。

简介:Feign是Netflix开发的声明式、模板化的HTTP客户端,在 Spring Cloud 中使用 Feign,可以做到使用 HTTP 请求访问远程服务,就像调用本地方法一样的,开发者完全感知不到这是在调用远程方法,更感知不到在访问 HTTP 请求。

3.Ribbon

作用:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。

简介:Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。

4.Hystrix

作用:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

简介:为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

5.Zuul

作用:Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。

简介:为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

6.Spring Cloud Sleuth

作用:日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

7.Spring Cloud Config

作用:配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

简介:SpringCloud Config提供服务器端和客户端。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

8.Spring Cloud Gateway

作用:Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

简介:Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式,统一访问接口,基于 Filter 链的方式提供了网关基本的功能。

发布了151 篇原创文章 · 获赞 1340 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/meteor_93/article/details/104020000