加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

运用Spring Boot和Cloud实现一些基本问题

发布时间:2021-05-30 22:33:58 所属栏目:系统 来源:互联网
导读:近年来,凭借着其架构中的各项优势,微服务体系架构已经成为了应用程序开发的首选项。但是不可否认的是,每一种架构都有自身的短板,微服务架构也不例外。例如:

近年来,凭借着其架构中的各项优势,微服务体系架构已经成为了应用程序开发的首选项。但是不可否认的是,每一种架构都有自身的短板,微服务架构也不例外。例如:在微服务架构中,我们可以部署许多被独立开发出来的服务,以提供在某些特定场景下的功能。不过,它们需要通过不同的API或事件,来实现彼此之间的通信。有时,它们甚至需要与某些外部系统进行通信,以实现完整的系统功能。

虽然我们在开发的过程中,需要最小化某个微服务对于其他微服务的直接依赖性。但是在某些情况下,这是不可避免的。因此,我们需要在开发和部署微服务时,全面考虑并管理好诸如:服务发现(Service Discovery)、断路器(Circuit Breaker)、分布式跟踪(Distributed Tracing)、路由、连接器(Connector),配置(Configurations)等关系。

首先,我为您准备了如下关系图。它向您展示了如何使用Spring Boot去构建微服务,以及如何使用Spring Cloud去部署和管理微服务。

我用到了Spring Cloud所提供的各种产品。下面我将解释每个组件能够解决的实际问题。

Spring Cloud Gateway — 如下图所示,那些所有来自互联网(Web或OpenAPI)的、对于微服务的调用,都应当经由Gateway,以处理路由和交互(Cross-Cutting)之类的问题,其中包括:安全性、监控、以及鲁棒性等方面。有关如何使用Spring Cloud来构建Gateway的内容。

配置服务器(Config Server) – 如下图所示,微服务往往自带有许多配置,而这些配置对于系统整合测试(System Integrate Test,SIT)、用户验收测试(User Acceptance Test,UAT)、以及生产环境(PROD)都有所不同。因此,无论是在应用的外部,还是在其内部中心位置,这些配置都应该可以被直接管理和维护。此外,如果配置中有任何需要更改的地方,其应用代码也不应被迫做相应的修改。Spring Cloud Config就能够为分布式系统中的各种外部配置,提供服务器端和客户端的支持。使用Config Server,您可以在中心位置管理所有当前环境中应用程序的外部属性。如果您想了解更多有关如何使用Spring Cloud,来轻松创建Config Server的详细内容。

服务注册表(Service Registry) - 各类用户或服务需要使用不同类型的客户端或服务器端发现,来确定向它们发送请求的服务实例的具体位置。可是,问题在于:这些服务的客户该如何知道那些对于每个环境都不尽相同的,可用的服务实例呢?业界常用的解决方案是实施Service Registry。它是针对各种可用服务、及其实例与位置的数据库。毕竟各类服务实例在启动的时候,都已经在服务注册表中注册过了。在此,Eureka Server能够帮助我们创建对应的Service Registry服务器,并将所有其他的服务都注册上去。如果您想创建并启用自己的注册表服务器,请使用spring-cloud-starter-netflix-eureka-server依赖项,以及@EnableEurekaServer。

Eureka Discovery Client – 不同的服务之间需要互相调用。如今,大多数微服务都是部署在虚拟机或容器化的环境之中,而且服务实例的数量、及其位置也是经常动态变化的。因此,我们需要实现一种机制,以使得服务客户端能够对那些动态更改的服务实例集发出请求。在此,Eureka Discovery Client正好派上用场。它可以帮助我们从Eureka服务注册表中获取已注册的相关服务。据此,Spring Cloud能够很容易地实现服务发现。如下图所示,只要Spring Cloud Netflix和Eureka Core在类路径就可以了。

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读