关于SpringCloud的微服务以及组件详解

目录
  • 一、SpringCloud
    • 1.1、什么是SpringCloud
    • 1.2、SpringCloud缺点
  • 二、什么是微服务架构
    • 2.1、什么是微服务
    • 2.2、微服务有什么优点
    • 2.3、微服务面临的问题
    • 2.4、架构类型划分
      • 2.4.1、单一应用架构
      • 2.4.2、垂直应用架构
      • 2.4.3、分布式服务架构
      • 2.4.4、流动计算架构
  • 三、版本选择
    • 3.1、SpringBoot版本
    • 3.2、SpringCloud版本
    • 3.3、如何进行版本选择
  • 四、Cloud组件
    • 4.1、Cloud组件介绍
      • 4.1.1、Spring Cloud Netflix
      • 4.1.2、Spring Cloud Alibaba
      • 4.1.3、其他组件
    • 4.2、停更的组件

一、SpringCloud

1.1、什么是SpringCloud

SpringCloud不同于其他 Spring 的优秀项目, 它不再是 像SpringSecurity、SpringMvc... 的一个基础框架, 而是一个更高层次的、 架构视角的综合性大型项目, 他的目标是构建一套标准化的微服务解决方案。让架构师、 开发者在使用微服务理念构建应用系统的时候, 面对各个环节的问题都可以找到相应的组件来处理。

引用网友戏称的一个比喻:Spring Cloud 可以说是 Spring 社区为微服务架构提供的一个 “ 全家桶 ” 套餐。 由于 “ 套餐 ” 中的组件通过一个社区进行包装与整合, 使得 “ 套餐 ” 中各个组件之间的配合变得更加和谐, 这可以有效减少我们在组件的选型和整合上花费的精力, 所以它可以帮助我们快速构建起基础的微服务架构系统。

1.2、SpringCloud缺点

Spring Cloud因其涵盖的内容非常广泛,因此对于很多初学者来说就像被专业名词轰炸了一样, 入门的难度也就大大提高了。 同时, 中文文档与资料的匮乏,以及官方文档的内容对于使用描述并不够细致等问题, 也直接提升了使用者的学习门槛。

二、什么是微服务架构

2.1、什么是微服务

“微服务 ”是在2014年3月名字叫Martin Fowler所提出的

微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。由于有了轻量级的通信协作基础, 所以这些微服务可以使用不同的语言来编写。

2.2、微服务有什么优点

微服务就是将单个应用拆分为了多个应用(这里的应用可以理解为jar包或war包),然后通过框架提供的网关、服务治理、服务发现、服务熔断等等,给人的感觉就会像是一个应用,主要目的是拆分多个应用,一旦并发、cpu、内存达到一定的瓶颈,可以采取多机部署,分担服务器压力。

往往一个庞大的高并发的业务系统都会采用微服务。同时微服务给人的感觉就是专业的人干专业的事,订单模块就是负责订单业务,用户模块就是负责用户相关业务,这样做的好处就是项目比较好维护。

2.3、微服务面临的问题

在实施微服务之前, 我们必须要知道, 微服务虽然有非常多吸引人的优点, 但是也因为服务的拆分引发了诸多原本在单体应用中没有的问题。

  • 运维的新挑战:运维人员需要维护的进程数量会大大增加,运维过程需要更多的自动化, 这就要求运维人员具备一定的开发能力来编排运维过程并让它们能自动运行起来(往往因为这一点 慢慢演变的开发也得具备一定的运维能力)。
  • 接口的一致性:虽然我们拆分了服务, 但是业务逻辑上的依赖并不会消除, 只是从单体应用中的代码依赖变为了服务间的通信依赖。 而当我们对原有接口进行了一些修改, 那么交互方也需要协调这样的改变来进行发布, 以保证接口的正确调用。 我们需要更完善的接口和版本管理, 或是严格地遵循开闭原则
  • 分布式的复杂性:由于拆分后的各个微服务都是独立部署并运行在各自的进程内,它们只能通过通信来进行协作, 所以分布式环境的问题都将是微服务架构系统设计时需要考虑的重要因素, 比如网络延迟、 分布式事务、 异步消息等。

一旦使用微服务意味着项目会有很多个,我们不可能再使用传统的方式使用tomcat来部署了。 tomcat部署缺点:一旦有一个服务更新就需要重启tomcat 这时候就需要打jar包,使用java -jar命令来启动项目了,使用java -jar启动项目一旦有很多的话不容易维护, 于是便引进了docker部署,docker可以和jenkins相结合 来完成微服务的自动化部署,同时这也是现在很流行的技术体系。

2.4、架构类型划分

下面这张图代表的是我们的思想一直在不断变化,从刚开始的ORM对象关系映射,到后面的MVC分层,RPC远程调用,最后到现在流行的SOA面向服务开发。

2.4.1、单一应用架构

不断扩大的需求会使得单体应用变得越来越腕肿。单体应用的问题就逐渐凸显出来, 由于单体系统部署在一个进程内, 往往我们修改了一个很小的功能, 为了部署上线会影响其他功能的运行。随着系统的发展, 维护成本会变得越来越大, 且难以控制。

2.4.2、垂直应用架构

每个小应用各自都有自己独立的、完整的可运行的一套系统。

2.4.3、分布式服务架构

目前我接手的几个项目都是用的这个架构,服务之间调用并没有用注册中心。

应用之间交互不可避免,将核心业务抽取出来,用于提高业务复用及整合的分布式服务框架(RPC)是关键。

2.4.4、流动计算架构

应用越来越多,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率

三、版本选择

使用springcloud必然离不开springboot,这两个框架的版本可不是随便一选就能搭配使用的,假如用的版本不对,可能会出现各种问题。

3.1、SpringBoot版本

springboot官网:https://spring.io/projects/spring-boot

springboot的git源码地址:https://github.com/spring-projects/spring-boot

通过官网可以发现:截至目前springboot最稳定的版本是2.7.0

依稀记着我上家公司springboot版本是用的1.5.9版本,项目是比较老的,已经有三四年了并且是个大项目。官网也明确说明了,强烈建议升级到2.0及以上版本。

3.2、SpringCloud版本

springcloud官网:https://spring.io/projects/spring-cloud springcloud的git源码地址:https://github.com/spring-cloud

SpringCloud是一个由许多子项目组成的综合项目,各子项目有不同的发布节奏。为了管理SpringCloud与各子项目的版本依赖关系,发布了一个清单,其中包括了某个SpringCloud版本对应的子项目版本。

为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。例如Angel是第一个版本, Brixton是第二个版本。

当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个"service releases"版本,简称SRX版本,比如Greenwich.SR2就是SpringCloud发布的Greenwich版本的第2个SRX版本。

目前我们公司有一个项目就是用的 Hoxton.SR4版本的SpringCloud + 2.2.5.RELEASE(RELEASE代表是发行版)版本的SpringBoot

截止目前官网最新可使用的版本是2021.0.3

GA:General Availability: 正式发布的版本,官方推荐使用此版本。在国外都是用GA来说明release版本的。CURRENT:当前推荐的版本PRE:里程碑版/预览版本SHAPSHOT:快照

这里只是一个标识,方便大家在使用的时候,进行选择版本,我们一般选择是CURRENT和GA版本

3.3、如何进行版本选择

官网提供了cloud和springboot的版本对应。

更详细的查看:https://start.spring.io/actuator/info

这个是官网提供的,会给我们返回更详细的版本对应关系,如果我们不知道版本怎么选择,可以看这个网站 ,网站返回的是json,我们需要格式化一下。

在线json格式化:https://www.sojson.com/

现在要是学习最新的SpringCloud和SpringBoot应该用哪个版本?

四、Cloud组件

4.1、Cloud组件介绍

这张图是两年前springcloud的所有组件,其中有很多组件已经不再更新,不再更新不代表不能用,只能说不建议再用了,当下最流行的组件是Spring Cloud Alibaba

4.1.1、Spring Cloud Netflix

Netflix(Nasdaq NFLX) 美国奈飞公司,是一家会员订阅制的流媒体播放平台。由于微服务的快速发展,Netflix公司的微服务又相对比较成熟,于是在技术上毫无保留的把一整套微服务架构核心技术栈开源了出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断的壮大。

Pivotal在Netflix开源的一整套核心技术产品线的同时,做了一系列的封装,就变成了Spring Cloud;Spring Cloud只是集成Netflix的各个组件,实现了各种starter,例如Eureka-starter、Zuul-starter,可以理解成简化Netflix微服务的使用,但是底层仍然是引用的Netflix,封装过后同时又可以和其他Spring Cloud产品进行无缝集成。

Netflix的各个组件在2018年是最火的一年,而后面相对来说他的很多产品已经基本上不再使用,原因就是Netflix的部分组件已经停更。再加上由于他的停更,Alibaba就采取了他的思想,研究出了Spring Cloud Alibaba,而对于现在而言Spring Cloud Alibaba基本上完全可以取代Netflix组件。

Netflix源码社区:https://github.com/Netflix

Spring Cloud Netflix的五大组件(神兽):

  1. Eureka:服务注册和发现,它提供了一个服务注册中心、服务发现的客户端,还有一个方便的查看所有注册的服务的界面。 所有的服务使用Eureka的服务发现客户端来将自己注册到Eureka的服务器上。
  2. Zuul:网关,所有的客户端请求通过这个网关访问后台的服务。他可以使用一定的路由配置来判断某一个URL由哪个服务来处理。并从Eureka获取注册的服务来转发请求。
  3. Ribbon:即负载均衡,Zuul网关将一个请求发送给某一个服务的应用的时候,如果一个服务启动了多个实例,就会通过Ribbon来通过一定的负载均衡策略来发送给某一个服务实例。
  4. Feign:服务客户端,服务之间如果需要相互访问,可以使用RestTemplate,也可以使用Feign客户端访问。它默认会使用Ribbon来实现负载均衡。
  5. Hystrix:监控和断路器。我们只需要在服务接口上添加Hystrix标签,就可以实现对这个接口的监控和断路器功能。

Spring Cloud Netflix的其他组件:

  1. Archaius:动态属性配置框架,URL、JDBC 和 Amazon DynamoDB 的动态配置源的实现。
  2. Turbine:Turbine 是一种用于将服务器发送事件 (SSE) JSON 数据流聚合成单个流的工具。Hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过Turbine来监控集群下Hystrix的metrics情况。

4.1.2、Spring Cloud Alibaba

Spring Cloud Alibaba组件:

  1. Nacos:Nacos是现在开发当中出场率最高的,他可以完成服务发现、配置管理、DNS服务,也就是一个组件可以完成config、Eureka、Bus三个组件的功能。

    1. spring-cloud-starter-alibaba-nacos-discovery:服务发现是微服务架构中的关键组件之一。在这样的架构中,手动为每个客户端配置服务列表可能是一项艰巨的任务,并且使动态扩展变得极其困难。Nacos Discovery 帮助您将服务自动注册到 Nacos 服务器Nacos 服务器会跟踪服务并动态刷新服务列表。此外,Nacos Discovery 将服务实例的一些元数据,如主机、端口、健康检查 URL、主页等注册到 Nacos。
    2. spring-cloud-starter-alibaba-nacos-config:使用 Spring Cloud Alibaba Nacos Config 基于 Spring Cloud 的编程模型快速接入 Nacos 配置管理能力。
  2. sentinel:Sentinel中文名称是哨兵,Sentinel 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户提升服务的稳定性。流量监控就是您可以看到您的服务器的监控数据,精确到秒级,甚至可以看到少于 500 个节点的集群的整体运行状态,pom依赖spring-cloud-starter-alibaba-sentinel
  3. dubbo:Alibaba提供了spring-cloud-starter-dubbo,对dubbo进行的封装,主要是为了让我们更好的让dubbo和Cloud其他组件进行集成使用。
  4. RocketMQ:是一个开源的分布式消息系统。它基于高可用分布式集群技术,提供低延迟、高稳定性的消息发布和订阅服务。Alibaba提供了spring-cloud-starter-stream-rocketmq,帮我们在cloud当中很方便的集成RocketMQ。
  5. ANS:Alibaba提供了spring-cloud-starter-alicloud-ans,ANS(Application Naming Service)是EDAS的一个组件。Spring Cloud 阿里云 ANS 提供符合 Spring Cloud 规范的商业版服务注册和发现,让您可以在本地开发应用,在云端运行。
  6. acm:Alibaba提供了spring-cloud-starter-alicloud-acm,Spring Cloud阿里云ACM是Spring Cloud客户端商用产品ACM (Application Configuration Management)的一个实现,是免费的。
  7. OSS:Alibaba提供了spring-cloud-starter-alicloud-oss,OSS(Object Storage Service)是阿里云上的存储产品。alicloud-oss提供符合 Spring Cloud 规范的商业化存储服务。提供易于使用的 API,并支持在 Spring 框架中集成 Resource。
  8. schedulerX:SchedulerX(分布式作业调度)是阿里云产品EDAS的一个组件。spring-cloud-starter-alicloud-schedulerX 提供了符合 Spring Cloud 规范的分布式作业调度。SchedulerX提供高精度秒级、高稳定性、高可用性的定时作业调度服务,支持简单的单服务器作业、简单的多主机作业、脚本作业、网格作业等多种作业类型。
  9. SMS:SMS(Short Message Service)是一种覆盖全球的短信服务,spring-cloud-starter-alicloud-sms提供了一个更易用的API,用于快速访问阿里云的短信服务。

企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )、HSF 等微服务运行环境,助力您的各类应用轻松上云。

4.1.3、其他组件

  1. Spring Cloud Config:springcloud config 项目是一个解决分布式系统的配置管理方案。它包含了 client 和 server 两个部分,server 端提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client 端通过接口获取数据、并依据此数据初始化自己的应用。 简单一点的说就是:在分布式环境中,很多的服务都是集群部署,那就意味着这些集群部署的服务都需要相同的配置文件。所以,这时候就引入了 springcloud config 这个组件,使用该组件来进行众多的配置文件的统一管理。例如,我们在修改某一配置文件时,只需要在远程的 gitHub 等工具上面修改即可,不用多次的在众多的配置文件中来回繁琐的修改。
  2. Spring Cloud Bus:Spring Cloud Bus 将分布式系统的节点与轻量级消息代理链接起来。这可以用来广播 状态改变(例如配置改变)或其他管理指令。
  3. Spring Cloud Sleuth:微服务跟踪(sleuth)其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程(包括数据采集,数据传输,数据存储,数据分析,数据可视化),捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。
  4. Spring Cloud Data Flow:Spring Cloud Data Flow是什么,虽然已经出现一段时间了,但想必很多人不知道,因为在项目中很少有人用。不仅找不到很多中文资料,英文资料也一样少的可怜。Spring Cloud Data Flow是基于微服务的,专门用于流式和批式数据处理的框架。
  5. Spring Cloud Security:Spring Cloud Security 用于以最小的麻烦构建安全的应用程序和服务。基于 Spring Boot 和 Spring Security OAuth2,我们可以快速创建实现常见模式的系统,如单点登录、令牌中继和令牌交换。
  6. Spring Cloud Zookeeper:通过一些简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用 Zookeeper 构建大型分布式系统。提供的模式包括服务发现和分布式配置。
  7. Spring Cloud Stream:Spring Cloud Stream 是一个框架,用于构建与共享消息系统连接的高度可扩展的事件驱动微服务。他可以和各种消息框架进行整合。
  8. Spring Cloud CLI:Spring Boot CLI为Spring Cloud提供Spring Boot命令行功能。您可以编写 Groovy 脚本来运行 Spring Cloud 组件应用程序(例如)。您还可以轻松地执行加密和解密等操作,以支持具有秘密配置值的 Spring Cloud Config 客户端。使用 Launcher CLI,您可以方便地从命令行一次性启动 Eureka、Zipkin、Config Server 等服务(在开发时非常有用)。
  9. Spring Cloud OpenFeign:同Feign是一样的,是一个远程调用框架,Feign已经停止更新,OpenFeign在Feign的基础上添加了对 Spring MVC 注释的支持。
  10. Spring Cloud Task:Spring Cloud Task 允许用户使用 Spring Cloud 开发和运行短期微服务,并在本地、云中甚至在 Spring Cloud Data Flow 上运行它们。只需将@EnableTask您的应用程序作为 Spring Boot 应用程序(单个应用程序上下文)添加并运行。
  11. Spring Cloud Connectors:简化了在 Cloud Foundry 和 Heroku 等云平台中连接服务和获得操作环境意识的过程,尤其是对于 Spring 应用程序。它是为可扩展性而设计的:您可以使用提供的云连接器之一或为您的云平台编写一个,您可以使用对常用服务(关系数据库、MongoDB、Redis、RabbitMQ)的内置支持或扩展 Spring与您自己的服务一起使用的云连接器。
  12. Spring Cloud Circuit Breaker:提供了跨不同断路器实现的抽象。它提供了在您的应用程序中使用的一致 API,让您开发人员可以选择最适合您的应用程序需求的断路器实现。
  13. Spring Cloud Consul:Consul是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服 务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实 现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。 使用起来也较为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和 Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。
  14. Spring Cloud Gateway:目前市场上很流行的网关服务,功能强大丰富,性能好,官方基准测试 RPS (每秒请求数)是Zuul的1.6倍,能与 SpringCloud 生态很好兼容,单从流式编程+支持异步上也足以让开发者选择它了。

4.2、停更的组件

1. eureka停更:

eureka目前已经在Netflix社区明确声明不在更新!而springcloud当中的eureka的starter仍然在更新,但是他更新只是为了兼容springcloud版本,并改变不了eureka已经停更的事实。

就好比假如mysql版本不再更新了,而navcat客户端还在不断更新,我们天天跟Navicat打交道,以至于很多人不知道其实项目已经是个死项目了,没有发展前途了。

Netflix的eureka社区:https://github.com/Netflix/eureka/wiki

2. Hystrix停更不停用:

NetfLix官网明确声明:Hystrix 不再处于积极开发阶段,目前处于维护模式。Hystrix(版本 1.5.18)足够稳定,可以满足 Netflix 对我们现有应用程序的需求。

3. Feign停更:

Feign是在2019就已经不再更新了,通过maven网站就可以看出来,随之取代的是OpenFeign,从名字上就可以知道,他是Feign的升级版。

maven网站:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign

4. Ribbon停更:

项目处于维护状态 ,已经好久没有更新过了。https://github.com/Netflix/ribbon

5. Config:

Config没用停更,只不过现在大部分人都采用nacos来做配置中心。

6. Archaius停更:

Netflix下的Archaius在2018年就已经停更。

7. Bus:

SpringCloud原生的服务总线组件,现在风头也被Nacos抢了。

到此这篇关于关于SpringCloud的使用以及现状的文章就介绍到这了,更多相关SpringCloud详解内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringCloud微服务中跨域配置的方法详解

    跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制. 同源策略,指的是协议,域名,端口都要相同,其中有一个不同都会产生跨域. 跨域相关含义: Access-Control-Allow-Origin:服务器允许请求的源: Access-Control-Allow-Headers: 服务器允许使用的头: Access-Control-Allow-Methods: 真实请求允许的方法: Access-Control-Allow-Cr

  • SpringCloud微服务续约实现源码分析详解

    目录 一.前言 二.客户端续约 1.入口 构造初始化 initScheduledTasks()调度执行心跳任务 2.TimedSupervisorTask组件 构造初始化 TimedSupervisorTask#run()任务逻辑 3.心跳任务 HeartbeatThread私有内部类 发送心跳 4.发送心跳到注册中心 构建请求数据发送心跳 三.服务端处理客户端续约 1.InstanceRegistry#renew()逻辑 2.PeerAwareInstanceRegistryImpl#rene

  • 微服务Springcloud之Feign的基本使用

    目录 前言 一.Feign概述 二.Feign入门 1.创建服务提供者(provider) 2.创建feign接口 3.创建服务消费者(consumer) 三.Feign 原理 四.Feign优化 1.开启feign日志 2.feign超时问题 3.http连接池 (1).连接池介绍 (2).连接池使用 4.gzip压缩 前言 当我们通过RestTemplate调用其它服务的API时,所需要的参数须在请求的URL中进行拼接,如果参数少的话或许我们还可以忍受,一旦有多个参数的话,这时拼接请求字符串

  • SpringCloud超详细讲解微服务网关Zuul基础

    目录 一.Zuul的简介 1.Zuul是怎么工作的 2.Zuul能干嘛 二.Zuul的使用 1.配置Pom.xml 2.配置Application.yml 3.撰写启动类 4.效果图 三.学会SpringCloud的感触 一.Zuul的简介 1.Zuul是怎么工作的 Zull包含了对请求的路由(用来跳转的)和过滤两个最主要功能: 其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础.Zu

  • SpringCloud微服务熔断器使用详解

    目录 一.简介 二.作用 三.核心概念 3.1 熔断目的 3.2 降级目的 四.实例 4.1 基于Hystrix 4.1.1 熔断触发降级 4.1.2 超时触发降级 4.1.3 资源隔离触发降级 4.2 基于OpenFeign pom.xml 一.简介 当微服务中的某个子服务,发生异常服务器宕机,其他服务在进行时不能正常访问而一直占用资源导致正常的服务也发生资源不能释放而崩溃,这时为了不造成整个微服务群瘫痪,进行的保护机制 就叫做熔断,是一种降级策略 熔断的目的:保护微服务集群 二.作用 对第三

  • 浅试仿 mapstruct实现微服务编排框架详解

    目录 微服务编排框架 开发背景 接口的方式 通过注解的方式 书写代码方式的选择 方案选择 feign MapStruct 方案总结 Feign @FeignClient MapStruct 微服务编排框架 起始原因 是 我们公司 分布式事务 使用的是 seate 分布式事务框架,现在只在一些小部分使用,因为考虑到seate 对性能 TCP的影响,对事务这块没有更多的选择.我就在想 是不是做一个 微服务 编排框架 来解决这个问题.这里就 开发背景 因为我们是saas 可能A企业要这个功能,B企业不

  • SpringCloud Gateway路由组件详解

    目录 简介 核心概念 具体示例 GlobalFilter 简介   Gateway是SpringCloud Alibaba中的路由组件(前身是Zuul),作为浏览器端请求的统一入口.当项目采用微服务模式时,若包含了路由模块,浏览器端的请求都不会直接请求含有业务逻辑的各个业务模块,而是请求这个路由模块,然后再由它来转发到各个业务模块去. 核心概念   Gateway中的三个核心概念:路由.断言(Predicate).过滤器.   路由:由唯一id.目的url.断言和过滤组成   断言:即路由规则,

  • Java之Springcloud Feign组件详解

    一.Feign是什么? OpenFeign是Spring Cloud提供的一个声明式的伪Hltp客户端,它使得调用远程服务就像调用本地服务一样简单,只需要创建一个接口并添加一个注解即可,Nacos很好的兼容了OpenFeign,OpenFeign默认集成了Ribbon, 所以在Nacos下使用OpenFeign默认就实现了负载均衡的效果. 二.使用步骤 1.消费方导入依赖 ···c org.springframework.cloud spring-cloud-starter-openfeign

  • Spring boot admin 服务监控利器详解

    目录 一.简介 二.搭建 1.服务端 2.客户端 3.启动项目 4.客户端配置 3.微服务 3.1.服务端 3.2.客户端 4.我的微服务预警发送其他服务状态信息思路 一.简介 用于对 Spring Boot 应用的管理和监控.可以用来监控服务是否健康.是否在线.以及一些jvm数据等等.Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交

  • SpringCloud中Gateway的使用教程详解

    目录 1.基础教程 2.将配置放在配置文件里 3.放在springcloud里面 4.使用服务名而不是IP 1.基础教程 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> </parent>

  • SpringCloud OpenFeign与Ribbon客户端配置详解

    目录 一.前言 二.OpenFeign与Ribbon配置 1.OpenFeign默认处理请求超时时间 1.1.模拟处理请求0.5秒 1.2.模拟处理请求1秒 2.Ribbon配置 2.1.配置请求处理超时5秒 2.2.模拟请求处理5秒 3.OpenFeign配置 3.1.配置请求处理超时6秒 3.2.OpenFeign配置对全部服务有效 3.3.针对某个服务 一.前言 OpenFeign为微服务架构下服务之间的调用提供了解决方案,OpenFeign是一种声明式.模板化的HTTP客户端.在Spri

  • SpringCloud注册中心部署Eureka流程详解

    目录 1.Eureka服务 2.服务提供者 3.服务消费者 4.服务调用测试 今天我们开始正式编码,如何创建spring boot项目这篇文章就不再讲述,如果想要了解可以阅读我之前的创建springboot项目. 首先我们先进行Spring cloud五大组件之一的注册中心,之前文章已经讲过注册中心的介绍,今天我们来部署Netflix的Eureka,进行单机部署以及高可用部署,并开发生产者以及消费者来进行测试eureka的注册消费.(ps:系列文章使用的Spring cloud版本为2021.0

  • Angular2入门教程之模块和组件详解

    本文呢主要给大家介绍的关于Angular2模块和组件的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.初步了解模块和组件 之前给大家介绍了构建工程,这篇文章简单讲述一下Angular2中的模块和组件. app文件夹下有五个文件,其中,app.component.spec.ts应该是和模块测试有关的文件,目前不用管它.剩下的四个文件就是典型的模块+组件的文件组成模式. Angular2应用由模块和组件构成,每个模块这样明明name.module.ts,组件则是name.compo

  • OpenStack 中的Nova组件详解

    Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理.这样使得Nova成为一个负责管理计算资源.网络.认证.所需可扩展性的平台.但是,Nova自身并没有提供任何虚拟化能力,相反它使用libvirt API来与被支持的Hypervisors交互.Nova 通过一个与Amazon Web Services(AWS)EC2 API兼容的w

随机推荐