整合篇:零基础学习与使用Actuator

配套资料,免费下载
链接:https://pan.baidu.com/s/1jA217UgqXpONi_fV-aOzqw
提取码:bm2g
复制这段内容后打开百度网盘手机App,操作更方便哦

1、场景简介

未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。Spring Boot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。而我们要做的就是引入这个场景的启动器即可。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2、端点介绍

2.1、端点概述

执行器端点(Actuator endpoints)使您可以监视应用程序并与之交互。Spring Boot包含许多内置端点,您可以添加自己的端点。例如,health端点提供基本的应用程序运行状况信息。每个单独的端点都可以通过HTTPJMX启用或禁用和公开。当端点同时启用和公开时,它被视为可用。内置端点只有在可用时才会被自动配置。大多数应用程序选择通过HTTP公开,其中端点的ID和前缀/actuator映射到URL。例如,默认情况下,health端点映射到/actuator/health。

可以使用以下与技术无关的端点:

ID 描述
auditevents 公开当前应用程序的审核事件信息。需要一个AuditEventRepository组件。
beans 显示应用程序中所有Spring Bean的完整列表。
caches 公开可用的缓存。
conditions 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。
configprops 显示所有的整理列表@ConfigurationProperties
env 公开Spring的属性ConfigurableEnvironment
flyway 显示所有已应用的Flyway数据库迁移。需要一个或多个Flyway组件。
health 显示应用程序运行状况信息。
httptrace 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应交换)。需要一个HttpTraceRepository组件。
info 显示任意应用程序信息。
integrationgraph 显示Spring Integration图。需要对的依赖spring-integration-core
loggers 显示和修改应用程序中记录器的配置。
liquibase 显示已应用的所有Liquibase数据库迁移。需要一个或多个Liquibase组件。
metrics 显示当前应用程序的“指标”信息。
mappings 显示所有@RequestMapping路径的整理列表。
scheduledtasks 显示应用程序中的计划任务。
sessions 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序。
shutdown 使应用程序正常关闭。默认禁用。
startup 显示由收集的启动步骤数据ApplicationStartup。需要使用SpringApplication进行配置BufferingApplicationStartup
threaddump 执行线程转储。

如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:

ID 描述
heapdump 返回hprof堆转储文件。
jolokia 通过HTTP公开JMX bean(当Jolokia在类路径上时,不适用于WebFlux)。需要对的依赖jolokia-core
logfile 返回日志文件的内容(如果已设置logging.file.namelogging.file.path属性)。支持使用HTTPRange标头来检索部分日志文件的内容。
prometheus 以Prometheus服务器可以抓取的格式公开指标。需要对的依赖micrometer-registry-prometheus

2.2、启动端点

默认情况下,除了shutdown端点,其余所有端点均处于启用状态。要配置端点的启用,请使用其management.endpoint.<id>.enabled属性。

以下示例启用shutdown端点:

management:
  endpoint:
    shutdown:
      enabled: true

如果您只想启用部分端点而不是所有端点,请将management.endpoints.enabled-by-default属性设置为false并使用各个端点enabled属性重新启用。

以下示例启用该info端点并禁用所有其他端点:

management:
  endpoints:
    enabled-by-default: false
  endpoint:
    info:
      enabled: true

注意: 禁用的端点将从应用程序上下文中完全删除。如果只想更改公开端点的技术,请使用includeexclude属性。

2.3、暴露端点

由于端点可能包含敏感信息,因此应谨慎考虑何时公开它们。下表显示了内置端点的默认暴露情况:

ID JMX Web
auditevents Yes No
beans Yes No
caches Yes No
conditions Yes No
configprops Yes No
env Yes No
flyway Yes No
health Yes Yes
heapdump N/A No
httptrace Yes No
info Yes Yes
integrationgraph Yes No
jolokia N/A No
logfile N/A No
loggers Yes No
liquibase Yes No
metrics Yes No
mappings Yes No
prometheus N/A No
scheduledtasks Yes No
sessions Yes No
shutdown Yes No
startup Yes No
threaddump Yes No

为了改变这些端点原有默认暴露行为,您可以使用includeexclude属性进行设置:

属性 默认
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include info,health

include属性列出了公开的端点的ID。该exclude属性列出了不应公开的端点的ID。

例如,要停止通过JMX公开所有端点,而仅公开healthinfo端点,请使用以下属性:

management:
  endpoints:
    jmx:
      exposure:
        include: health,info

*可用于选择所有端点。例如,要通过HTTP公开除envbeans端点之外的所有内容,请使用以下属性:

management:
  endpoints:
    web:
      exposure:
        include: '*'
        exclude: env,beans

注意:* 在YAML中具有特殊含义,因此如果要包括(或排除)所有端点,请确保添加引号。

2.4、访问端点

我们以访问health端点为例:http://localhost:8080/actuator/health

image-20210107205303843

2.5、保护端点

您应该像对待其他任何敏感URL一样,确保HTTP端点的安全。如果存在Spring Security,则默认情况下使用Spring Security的内容协商策略保护端点的安全。例如,如果您希望为HTTP端点配置自定义安全性,仅允许具有特定角色的用户访问它们,Spring Boot提供了一些方便的RequestMatcher对象,这些对象可以与Spring Security结合使用。典型的Spring Security配置可能类似于以下示例:

@Configuration(proxyBeanMethods = false)
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests((requests) ->
                requests.anyRequest().hasRole("ENDPOINT_ADMIN"));
        http.httpBasic();
    }

}

前面的示例用于EndpointRequest.toAnyEndpoint()将请求匹配到任何端点,然后确保所有ENDPOINT_ADMIN角色都具有该角色。如果将应用程序部署在防火墙后面,则可能希望无需进行身份验证即可访问所有执行器端点。您可以通过更改management.endpoints.web.exposure.include属性来做到这一点,如下所示:

management:
  endpoints:
    web:
      exposure:
        include: '*'

此外,如果存在Spring Security,则需要添加自定义安全配置,该配置允许未经身份验证的端点访问,如以下示例所示:

@Configuration(proxyBeanMethods = false)
public class ActuatorSecurity extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests((requests) ->
            requests.anyRequest().permitAll());
    }

}

2.6、配置端点

对于不带任何参数的端点读取操作,端点将自动缓存。要配置端点缓存生存的时间,请使用其cache.time-to-live属性。

以下示例将beans端点的缓存的生存时间设置为10秒:

management:
  endpoint:
    beans:
      cache:
        time-to-live: 10s

2.7、跨域支持

(CORS)是W3C规范,可让您灵活地指定授权哪种类型的跨域请求。如果使用Spring MVC或Spring WebFlux,则可以将Actuator的Web端点配置为支持此类方案。默认情况下,CORS支持是禁用的,并且仅management.endpoints.web.cors.allowed-origins在设置了属性后才启用。

以下配置允许GETPOSTexample.com域调用:

management:
  endpoints:
    web:
      cors:
        allowed-origins: https://example.com
        allowed-methods: GET,POST

注意: 有关选项的完整列表,请参见CorsEndpointProperties

2.8、自定义端点

如果您想自定义端点请在类上标注@Endpoint注解,还有一些特定的方法注解如@ReadOperation@WriteOperation@DeleteOperation,自定义厚的端点会默认显示在Web应用程序以及JMX和HTTP的访问中,可以使用Jersey,Spring MVC或Spring WebFlux通过HTTP公开端点。如果Jersey和Spring MVC均可用,则将使用Spring MVC。

以下示例公开了一个读取操作,一个写操作:

@Component
@Endpoint(id = "container")
public class DockerEndpoint {

    @ReadOperation
    public Map getDockerInfo(){
        return Collections.singletonMap("info","docker started...");
    }

    @WriteOperation
    private void restartDocker(){
        System.out.println("docker restarted....");
    }

}

以下示例公开了一个读取操作,该操作返回一个自定义对象:

@ReadOperation
public CustomData getCustomData() {
    return new CustomData("test", 5);
}

您也可以使用@JmxEndpoint或编写技术特定的端点@WebEndpoint。这些端点仅限于其各自的技术。例如,@WebEndpoint仅通过HTTP而不是JMX公开。

您可以使用@EndpointWebExtension和编写特定于技术的扩展@EndpointJmxExtension。这些注解使您可以提供特定于技术的操作来扩展现有端点。

最后,如果需要访问特定于Web框架的功能,则可以实现Servlet或Spring@Controller@RestController终结点,但要付出代价,即它们无法通过JMX或使用其他Web框架使用。

Servlet端点

Servlet可以通过标注一个@ServletEndpoint注解同时实现Supplier<EndpointServlet>就能成为一个Servlet端点。Servlet端点提供了与Servlet容器的更深层集成,但以可移植性为代价。它们旨在用于将现有对象公开Servlet为端点。对于新端点,应尽可能使用@Endpoint@WebEndpoint注解。

Controller端点

@ControllerEndpoint@RestControllerEndpoint可以用于实现仅由Spring MVC或Spring WebFlux公开的端点。使用Spring MVC和Spring WebFlux的标准注解(例如@RequestMapping和)映射方法@GetMapping,并将端点的ID用作路径的前缀。控制器端点提供了与Spring Web框架的更深层集成,但以可移植性为代价。对于新端点,应尽可能使用@Endpoint@WebEndpoint注解。

3、健康信息

3.1、健康详情

您可以使用运行状况信息来检查正在运行的应用程序的状态。监视软件通常使用它在生产系统出现故障时向某人发出警报。health端点公开的信息取决于management.endpoint.health.show-detailsmanagement.endpoint.health.show-components属性,可以使用以下值之一对其进行配置:

名称 描述
never 详细信息永远不会显示。
when-authorized 详细信息仅显示给授权用户。可以使用来配置授权角色management.endpoint.health.roles
always 向所有用户显示详细信息。

默认值为never。当用户担任一个或多个端点的角色时,该用户被视为已授权。如果端点没有配置的角色(默认值),则所有通过身份验证的用户均被视为已授权。可以使用management.endpoint.health.roles属性配置角色。

健康信息是从HealthContributorRegistry中收集的,该HealthContributorRegistry可用于在运行时注册和注销的健康指标。Spring Boot包括许多自动配置的HealthContributors,您也可以编写自己的。

一个HealthContributor可以是一个HealthIndicator或是一个 CompositeHealthContributor。一个HealthIndicator提供实际的健康信息,包括Status。一个CompositeHealthContributor提供其他的组合HealthContributors,合起来形成一个树形结构来代表整个系统的健康状况。

默认情况下,最终的系统健康状况是由StatusAggregator派生的,它根据状态HealthIndicator的有序列表对每个状态进行排序。排序列表中的第一个状态用作整体运行状况。如果没有HealthIndicator返回一个已知状态StatusAggregator,一种UNKNOWN是使用状态。

3.2、健康指标

3.2.1、健康指标列表

HealthIndicators在适当的情况下,Spring Boot会自动配置以下内容。您也可以通过配置启用/禁用选定的指标management.health.key.enabled,key表示键这一列的某一个属性。

名称 描述
cassandra CassandraDriverHealthIndicator 检查Cassandra数据库是否已启动。
couchbase CouchbaseHealthIndicator 检查Couchbase群集是否已启动。
datasource DataSourceHealthIndicator Checks that a connection to DataSource can be obtained.
diskspace DiskSpaceHealthIndicator 检查磁盘空间不足。
elasticsearch ElasticsearchRestHealthIndicator 检查Elasticsearch集群是否已启动。
hazelcast HazelcastHealthIndicator 检查Hazelcast服务器是否已启动。
influxdb InfluxDbHealthIndicator 检查InfluxDB服务器是否已启动。
jms JmsHealthIndicator 检查JMS代理是否启动。
ldap LdapHealthIndicator 检查LDAP服务器是否已启动。
mail MailHealthIndicator 检查邮件服务器是否已启动。
mongo MongoHealthIndicator 检查Mongo数据库是否已启动。
neo4j Neo4jHealthIndicator 检查Neo4j数据库是否启动。
ping PingHealthIndicator 一律以回应UP
rabbit RabbitHealthIndicator 检查Rabbit服务器是否已启动。
redis RedisHealthIndicator 检查Redis服务器是否启动。
solr SolrHealthIndicator 检查Solr服务器是否已启动。

注意: 您可以通过设置management.health.defaults.enabled属性来全部禁用它们。

其他HealthIndicators功能可用,但默认情况下未启用:

名称 描述
livenessstate LivenessStateHealthIndicator 公开“活动”应用程序的可用性状态。
readinessstate ReadinessStateHealthIndicator 公开“就绪”应用程序可用性状态。

反应式健康指标列表

ReactiveHealthIndicators在适当的情况下,Spring Boot会自动配置以下内容:

名称 描述
CassandraDriverReactiveHealthIndicator 检查Cassandra数据库是否已启动。
CouchbaseReactiveHealthIndicator 检查Couchbase群集是否已启动。
ElasticsearchReactiveHealthIndicator 检查Elasticsearch集群是否已启动。
MongoReactiveHealthIndicator 检查Mongo数据库是否已启动。
Neo4jReactiveHealthIndicator 检查Neo4j数据库是否启动。
RedisReactiveHealthIndicator 检查Redis服务器是否启动。

3.2.2、自定义健康指标

为了提供定制的健康信息,您可以注册实现该HealthIndicator接口的Spring bean 。您需要提供该health()方法的实现并返回Health响应。的Health响应应该包括一个状态,并且可以任选地包括另外的细节被显示。以下代码显示了示例HealthIndicator实现:

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

@Component
public class MyHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {
        int errorCode = check(); // perform some specific health check
        if (errorCode != 0) {
            return Health.down().withDetail("Error Code", errorCode).build();
        }
        return Health.up().build();
    }

}

除了Spring Boot的预定义Status类型之外,Health还可以返回代表新系统状态的自定义Status

在这种情况下,StatusAggregator还需要提供接口的自定义实现或者必须使用management.endpoint.health.status.order配置属性来配置默认实现。

management:
  endpoint:
    health:
      status:
        order: fatal,down,out-of-service,unknown,up

响应中的HTTP状态代码反映了总体健康状态。默认情况下,OUT_OF_SERVICEDOWN映射到503的所有未映射的健康状态,包括UP,映射到200你可能也想,如果你通过HTTP访问健康端点注册自定义状态映射。配置自定义映射禁用默认映射DOWNOUT_OF_SERVICE。如果要保留默认映射,则必须在所有自定义映射旁边显式配置它们。例如,以下属性映射FATAL到503(服务不可用)和保留的默认映射DOWNOUT_OF_SERVICE

management:
  endpoint:
    health:
      status:
        http-mapping:
          down: 503
          fatal: 503
          out-of-service: 503

下表显示了内置状态的默认状态映射:

Status Mapping
DOWN SERVICE_UNAVAILABLE (503)
OUT_OF_SERVICE SERVICE_UNAVAILABLE (503)
UP 默认情况下没有映射,因此http状态为200
UNKNOWN 默认情况下没有映射,因此http状态为200

自定义反应式健康指标

对于反应式应用程序,例如使用Spring WebFlux的那些应用程序,ReactiveHealthContributor提供了非阻塞合同来获取应用程序的运行状况。与传统方法类似HealthContributor,健康信息是从中收集的ReactiveHealthContributorRegistry的信息。为了从反应式API提供自定义的健康信息,您可以注册实现该ReactiveHealthIndicator接口的Spring bean 。以下代码显示了示例ReactiveHealthIndicator实现:

@Component
public class MyReactiveHealthIndicator implements ReactiveHealthIndicator {

    @Override
    public Mono<Health> health() {
        return doHealthCheck() //perform some specific health check that returns a Mono<Health>
            .onErrorResume(ex -> Mono.just(new Health.Builder().down(ex).build()));
    }

}

4、数据可视化

4.1、Spring Boot Admin概述

我们虽然可以使用HTTP请求来查看当前应用健康数据,但是毕竟不是很方便,所以我们可以使用开源的 Spring Boot Admin 来进行可视化。

Spring Boot Admin为注册的应用程序提供以下功能:

  • 显示健康状况
  • 显示详细信息,例如
    • JVM和内存指标
    • micrometer.io指标
    • 数据源指标
    • 缓存指标
  • 显示内部编号
  • 关注并下载日志文件
  • 查看JVM系统和环境属性
  • 查看Spring Boot配置属性
  • 支持Spring Cloud的可发布/ env-和// refresh-endpoint
  • 轻松的日志级别管理
  • 与JMX-beans交互
  • 查看线程转储
  • 查看http-traces
  • 查看审核事件
  • 查看http端点
  • 查看预定的任务
  • 查看和删除活动会话(使用spring-session)
  • 查看Flyway / Liquibase数据库迁移
  • 下载heapdump
  • 状态更改通知(通过电子邮件,Slack,Hipchat等)
  • 状态更改的事件日志(非持久性)

4.2、Spring Boot Admin文档

指南地址:http://codecentric.github.io/spring-boot-admin/2.3.1/

4.3、Spring Boot Admin使用

4.3.1、Client端

我们自己编写的应用叫做客户端,为了能够连接服务器,所以我们应该添加客户端的依赖:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.3.1</version>
</dependency>

也需要针对性的做一些配置:

management:
  endpoints:
    web:
      exposure:
        include: '*'

spring:
  boot:
    admin:
      client:
        #配置服务端地址
        url: http://127.0.0.1:8888
        instance:
          #是否启用IP地址访问服务端
          prefer-ip: true
          #请配置当前应用的应用名称
          name: spring-boot-quick

重新启动咱们自己编写的应用即可,但是现在先不要访问,因为我们还没有服务端,服务端就是用来将数据进行可视化的,所以,等服务端创建完毕并运行以后,我们再启动当前的应用就好。

4.3.2、Server端

image-20210107224348556

image-20210107224430189

image-20210107224506919

image-20210107224525593

导入依赖:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.3.1</version>
</dependency>

修改配置:

server:
  port: 8888
  
spring: 
  application:
    name: spring-boot-admin

开启注解:

@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminApplication.class, args);
    }

}

启动应用,然后再启动客户端,最后访问地址:http://localhost:8888/

image-20210107225745441

原文地址:https://caochenlei.blog.csdn.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Nacos 中的参数有很多,如:命名空间、分组名、服务名、保护阈值、服务路由类型、临时实例等,那这些参数都是什么意思?又该如何设置?接下来我们一起来盘它。 1.命名空间 在 Nacos 中通过命名空间(Namespace)+ 分组(Group)+服务名(Name)可以定位到一个唯一的服务实例。 命名
Nacos 支持两种 HTTP 服务请求,一个是 REST Template,另一个是 Feign Client。之前的文章咱们介绍过 Rest Template 的调用方式,主要是通过 Ribbon(负载均衡) + RestTemplate 实现 HTTP 服务调用的,请求的核心代码是这样的: @
Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能。 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连接管理和请求转发的功能,让程序的开发者无需过多的关注服务提供者的稳定性和健康程度以及调用地址,因为这
Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud Alibaba 的核心组件之一,提供了两个非常重要的功能:服务注册中心(服务注册和发现)功能,和统一配置中心功能。 Nac
在 Nacos 的路由策略中有 3 个比较重要的内容:权重、保护阈值和就近访问。因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出“保护阈值”来详细聊聊。 保护阈值 保护阈值(ProtectThreshold):为了防止因过多实例故障,导致所有流量全部流入剩余健康实例,继而造成流量压力将剩余健
前两天遇到了一个问题,Nacos 中的永久服务删除不了,折腾了一番,最后还是顺利解决了。以下是原因分析和解决方案,建议先收藏,以备不时之需。 临时实例和持久化实例是 Nacos 1.0.0 中新增了一个特性。临时实例和持久化实例最大的区别是健康检查的方式:临时实例使用客户端主动上报的健康检查模式,而
Spring Cloud Alibaba 技术体系中的 Nacos,提供了两个重要的功能:注册中心(服务注册与发现)功能和配置中心功能。 其中注册中心解决了微服务调用中,服务提供者和服务调用者的解耦,让程序开发者可以无需过多的关注服务提供者和调用者的运行细节,只需要通过 Nacos 的注册中心就可以
负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。 服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使用不同负载均衡策略的场景确实是存在的,所以客
本篇文章为大家展示了如何解决Spring Cloud 服务冲突问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、背景...
本篇内容主要讲解“spring cloud服务的注册与发现怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spri...
本篇内容介绍了“Dubbo怎么实现Spring Cloud服务治理 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本篇内容主要讲解“SpringCloud相关面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud相...
如何分析Spring Cloud Ribbon、Spring Cloud Feign以及断路器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希
这篇文章主要讲解了“springcloud微服务的组成部分有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“s...
这篇文章主要讲解了“SpringCloud的OpenFeign项目怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习...
本篇内容主要讲解“spring cloud oauth3整合JWT后获取用户信息不全怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带...
怎样解析微服务架构SpringCloud,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。...
这篇文章主要介绍spring cloud中API网关的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、服务网关简介1、外观模式客户端...
本篇内容介绍了“Spring Cloud微服务的相关问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本文小编为大家详细介绍“spring cloud config整合gitlab如何搭建分布式的配置中心”,内容详细,步骤清晰,细节处理妥当,希望这篇“spring cloud config整合gi...