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

国内新闻 浏览(1135)

1.3春季云和中间件

1.3.1什么是中间件

近年来,越来越多的领域已经离不开计算机、网络技术和通用技术。随着计算机技术的快速发展,需要更多的软件在许多不同的网络协议、不同的硬件制造商和不同的网络平台上运行。因此,开发人员需要面对数据分散、操作困难、系统匹配度低的问题,需要开发多种应用程序来达到操作的目的。因此,中间件的产生大大减轻了开发人员的负担,使软件运行更加高效。中间件给应用系统带来的不仅是简单的开发和缩短的开发周期,还减少了系统维护、操作和管理的工作量,还减少了整体计算机成本的投入。

中间件是一类软件的通称,而不是单一软件。它是在系统软件和应用软件之间提供连接的软件,以促进软件组件之间的通信,特别是应用软件对于系统软件的集中逻辑。它是一个独立的系统软件或服务程序。分布式应用软件通过该软件在不同技术之间共享资源。

也就是说,关于中间件,我们可以理解它是一种可以与一个或多个应用程序协作和通信,共享资源,同时为应用程序提供相关服务的软件。中间件的本质可以分为技术架构。通用中间件包括服务治理中间件、配置中心、全链路监控、分布式事务、分布式定时任务、消息中间件、API网关、分布式缓存、数据库中间件等。

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

1.3.2什么是Spring Cloud

Spring Cloud字面意思是一个专用于分布式系统和云服务的框架。Spring Cloud是Spring家族的新成员,是云服务最近流行的必然结果。

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

1.3.3 Spring Cloud项目模块

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

组件名称

Project

Component Classification

Eureka

Spring-Cloud-网飞

Registration Center

Fan

Spring-clou D-open Fan

Declarative HTTP Client

Ribbon

Spring-Cloud-网飞

Load Balancing

Hystrix

Spring-Cloud-网飞

Fuse

Zuul

Spring-Cloud-网飞

第一代网关

Sleuth

Spring-Cloud-Sleuth

Link Tracking

Config

Spring-Cloud-Config

Config

Configuration Center尤里卡

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

profile: Spring Cloud Eureka是Spring Cloud网飞项目下的一个服务治理模块。有两个组件:尤里卡服务器和尤里卡客户端。尤里卡服务器被用作支持集群部署的服务注册中心。尤里卡客户端是一个处理服务注册和发现的java客户端。当应用程序启动时,尤里卡客户端向服务器注册自己的服务信息,并在本地缓存服务器的服务信息。客户和服务

简介:佯是一个声明性的和模板化的HTTP客户端,由网飞开发。在Spring Cloud中使用假动作可以使用HTTP请求访问远程服务,就像调用本地方法一样。开发人员完全不知道这是在调用远程方法,更不知道访问HTTP请求。

3。Ribbon

function:提供云负载平衡,有多种负载平衡策略可供选择,可与服务发现和断路器结合使用。

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

4。Hystrix

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

简介:为了确保高可用性,单个服务通常部署在集群中。由于网络原因或自身原因,该服务无法保证100%的可用性。如果单个服务有问题,调用该服务时会发生线程阻塞。如果此时大量请求涌入,Servlet容器的线程资源将会耗尽,导致服务瘫痪。服务和服务之间的依赖关系,失效会蔓延,会给整个微观服务系统造成灾难性和严重的后果,这就是服务失效的“雪崩”效应。

5。Zuul

role: Zuul是在云平台上提供动态路由、监控、灵活性、安全性和其他边缘服务的框架。

简介:为了确保高可用性,单个服务通常部署在集群中。由于网络原因或自身原因,该服务无法保证100%的可用性。如果单个服务有问题,调用该服务时会发生线程阻塞。如果此时大量请求涌入,Servlet容器的线程资源将会耗尽,导致服务瘫痪。服务和服务之间的依赖关系,失效会蔓延,会给整个微观服务系统造成灾难性和严重的后果,这就是服务失效的“雪崩”效应。

6。SpringCloud Sleuth

Role:Log Collection Toolkit封装了Dapper和基于日志的跟踪以及Zipkin和HTrace操作,为SpringCloud应用程序实现了分布式跟踪解决方案。

7。spring Cloud Config

Role:Configuration Management Toolkit允许您将配置放在远程服务器上并集中集群配置。目前,它支持本地存储、Git和Subversion。

简介:SpringCloud Config提供了服务器端和客户端。服务器存储后端的默认实现使用git,因此它很容易支持配置环境的标签版本,并且可以访问各种管理内容的工具。这仍然是静态的,需要与Spring Cloud Bus匹配来实现动态配置更新。

8。Spring Cloud Gateway

Role:Spring Cloud正式推出的第二代网关框架取代了Zuul网关。作为流量,网关在微服务系统中起着非常重要的作用。网关的常见功能包括路由转发、权限检查、限流控制等。

简介:作为Spring Cloud生态系统中的一个网关,Spring Cloud Gateway旨在为微服务架构提供一个简单有效的统一API路由管理方法,一个统一的访问接口,以及一个基于过滤链的方法来提供网关的基本功能。