解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(一)

本系列文章简介:

        本系列文章将深入探究Spring Cloud LoadBalancer工作原理应用场景,并揭示其背后的神奇之处。通过解密这个魔法密卷,我们将能够了解如何构建具有高效、可靠性的负载均衡系统,以及如何在微服务架构中实现优化的流量分发。无论你是一位开发者、架构师还是运维人员,本系列文章都将帮助你更好地理解和应用Spring Cloud LoadBalancer,为你的系统带来卓越的性能和可扩展性。欢迎大家订阅《Java技术栈高级攻略》专栏,一起学习,一起涨分!

目录

第一章:Spring Cloud LoadBalancer简介

1.1 什么是Spring Cloud LoadBalancer

1.2 Spring Cloud LoadBalancer与微服务架构

1.3 Spring Cloud LoadBalancer的主要特性

第二章:负载均衡的基本原理

2.1 负载均衡的定义

2.2 负载均衡的类型与算法

2.3 负载均衡在微服务架构中的作用

第三章:Spring Cloud LoadBalancer的核心组件

3.1 服务发现与注册中心

3.2 负载均衡算法的实现

3.3 请求转发与响应处理

第四章:Spring Cloud LoadBalancer的配置与使用

4.1 如何集成Spring Cloud LoadBalancer

4.2 配置负载均衡规则

4.3 负载均衡器的监控与调优

第五章:Spring Cloud LoadBalancer的高级特性

第六章:Spring Cloud LoadBalancer自定义负载均衡策略

第七章:Spring Cloud LoadBalancer实现高效负载均衡的技巧与注意事项

第八章:Spring Cloud LoadBalancer的实践案例

第九章:Spring Cloud LoadBalancer的未来展望

第十章:结语


第一章:Spring Cloud LoadBalancer简介

1.1 什么是Spring Cloud LoadBalancer

Spring Cloud LoadBalancer是一个用于客户端负载均衡的库,它可以与Spring Cloud应用程序一起使用。它提供了一种在多个服务的实例之间均衡负载的方式,以实现高可用性和可伸缩性。

Spring Cloud LoadBalancer基于Netflix Ribbon实现,并提供了一些额外的功能。它可以自动地从服务注册中心获取可用的服务实例列表,并根据一定的规则选择要发送请求的服务实例。它还包含了一些负载均衡策略,如轮询、随机、加权随机等。

使用Spring Cloud LoadBalancer,开发人员可以轻松地在微服务架构中实现负载均衡,无需关注底层细节。它提供了一种简单而灵活的方式来管理和调整服务之间的负载分配。


1.2 Spring Cloud LoadBalancer与微服务架构

Spring Cloud LoadBalancer 是 Spring Cloud 提供的负载均衡模块,用于在微服务架构中实现客户端的负载均衡。在微服务架构中,服务实例会被部署在多个节点上,为了实现高可用和高性能,需要将客户端的请求分发到不同的服务实例上。

Spring Cloud LoadBalancer 提供了负载均衡算法和服务实例的动态发现功能,可以根据设置的负载均衡策略,自动选择可用的服务实例,将请求分发到不同的节点上。它支持多种负载均衡策略,如轮询、随机、权重等,并且可以通过自定义实现扩展更多的负载均衡策略。

在微服务架构中,使用 Spring Cloud LoadBalancer 可以实现以下功能:

  1. 服务发现和注册:通过 Spring Cloud Discovery 提供的服务注册中心,将服务实例注册到注册中心,LoadBalancer 可以从注册中心获取可用的服务实例信息。
  2. 负载均衡:LoadBalancer 根据设定的负载均衡策略,选择合适的服务实例,将请求分发到不同的节点上,实现负载均衡。
  3. 服务容错:LoadBalancer 可以通过健康检查和故障转移机制,自动剔除不可用的服务实例,确保系统的高可用性。

总而言之,Spring Cloud LoadBalancer 是在微服务架构中实现客户端的负载均衡的核心组件之一,它通过服务发现和注册、负载均衡和容错机制,提供了灵活、可靠的负载均衡解决方案。


1.3 Spring Cloud LoadBalancer的主要特性

Spring Cloud LoadBalancer的主要特性包括:

  1. 服务发现和负载均衡:Spring Cloud LoadBalancer能够与服务注册中心(如Eureka、Consul等)集成,自动发现可用的服务实例,并根据负载均衡策略将请求分发给这些实例。

  2. 负载均衡策略:Spring Cloud LoadBalancer支持多种负载均衡策略,包括随机、轮询、权重、最小连接等。

  3. 动态配置:Spring Cloud LoadBalancer能够动态地根据配置文件或外部配置源调整负载均衡策略和参数,以适应不同的场景和需求。

  4. 自定义扩展:Spring Cloud LoadBalancer提供了一套扩展机制,可以自定义负载均衡策略和实现自定义的负载均衡算法。

  5. 高可用和容错:Spring Cloud LoadBalancer支持多种故障转移和容错机制,能够自动检测和处理不可用的服务实例,保证服务的高可用性。

  6. 集成其他Spring Cloud组件:Spring Cloud LoadBalancer可以与其他Spring Cloud组件(如Spring Cloud Gateway、Spring Cloud Circuit Breaker等)无缝集成,提供更强大的功能和更灵活的架构。

第二章:负载均衡的基本原理

2.1 负载均衡的定义

负载均衡是指将网络或计算资源的负载分摊到多个服务器或计算节点上的技术。它的基本原理就是通过算法和策略将网络流量或任务按照一定的规则分配到多个服务器或计算节点上,以达到负载平衡和资源优化的目的。

负载均衡的定义可以分为两个方面:

  1. 分布式负载均衡:分布式负载均衡是指将负载分摊到多个服务器或计算节点上,以实现集群或分布式系统的负载均衡。它可以通过将流量或任务分发到不同节点上,从而提高系统的性能和可靠性。例如,一个网站可以通过分布式负载均衡将访问请求分发到多个服务器上,以实现高并发的处理能力。

  2. 硬件负载均衡:硬件负载均衡是指使用专用的硬件设备来实现负载均衡。这些设备通常具有高速路由和转发能力,能够根据预设的负载均衡算法和策略,将请求分发到不同的服务器或计算节点上。硬件负载均衡可以提供更高的性能和可靠性,并且能够支持更大规模的负载均衡。

综上所述,负载均衡的定义是将网络或计算资源的负载分摊到多个服务器或计算节点上的技术,它可以通过算法和策略实现分布式负载均衡和硬件负载均衡,以提高系统的性能、可靠性和资源利用率。


2.2 负载均衡的类型与算法

负载均衡是指将网络流量和计算任务均匀地分配到多个服务器上,以提高系统的性能、可靠性和可扩展性。负载均衡的类型和算法有以下几种:

  1. 基于网络层的负载均衡:这种负载均衡是在网络层上实现的,通过将请求流量分发到不同的服务器上。常见的算法包括轮询、最小连接数、IP哈希等。

  2. 基于应用层的负载均衡:这种负载均衡是在应用层上实现的,可以根据请求的内容、会话信息等进行负载均衡。常见的算法包括URL哈希、Cookie哈希等。

  3. 内容感知的负载均衡:这种负载均衡根据请求的内容类型或关键字进行负载均衡,以实现更精细的流量分发。常见的算法包括请求关键字、URL路径匹配等。

  4. 动态负载均衡:这种负载均衡根据服务器的负载情况动态地调整流量分发策略。常见的算法包括加权轮询、动态权重等。

  5. 高可用负载均衡:这种负载均衡在分发请求时考虑服务器的可用性,以实现系统的高可用性。常见的算法包括故障检测、健康检查等。

选择合适的负载均衡算法需要考虑系统的特点、负载分布、性能需求等因素,并综合考虑算法的复杂性、可扩展性、容错性等。


2.3 负载均衡在微服务架构中的作用

负载均衡在微服务架构中起着至关重要的作用。微服务架构是一种将应用程序拆分成一系列较小、独立的服务的架构模式,每个服务负责特定的业务功能。这种架构模式的优势之一是可以水平扩展每个服务的实例,以满足不断增长的请求量。

负载均衡的作用是将请求均匀地分配给多个服务实例,以避免单个实例的过载或故障影响整个系统的性能。它可以根据服务实例的负载情况、处理能力等因素,智能地决策将请求发送到哪个实例上。

负载均衡有助于实现以下几个方面的效益:

  1. 提高系统性能:负载均衡可以将请求分发到多个服务实例上,从而提高系统的吞吐量和响应速度。当系统负载高时,负载均衡可以将请求发送到相对空闲的实例,从而实现负载均衡。

  2. 实现高可用性:负载均衡可以通过将请求转发到多个服务实例上,使系统不依赖单个实例,从而提高系统的可用性。当某个实例发生故障时,负载均衡可以将请求发送到其他正常运行的实例上,保证系统继续运行。

  3. 简化服务发现和动态扩缩容:由于微服务架构中服务实例的数量可能动态变化,通过负载均衡器可以自动发现新的服务实例并将其加入到负载均衡池中。同时,当服务实例的数量增加或减少时,负载均衡器可以自动调整请求的分发策略,以适应系统的变化。

总之,负载均衡在微服务架构中是实现高性能、高可用性和动态伸缩的关键组件,能够提高系统的稳定性和可扩展性。

第三章:Spring Cloud LoadBalancer的核心组件

3.1 服务发现与注册中心

Spring Cloud LoadBalancer作为一种客户端负载均衡组件,使用服务发现与注册中心来实现服务的动态发现和注册。服务发现与注册中心是Spring Cloud微服务架构中的一个重要组件,用于管理服务的注册和发现。

服务注册中心是一种集中式的服务注册与发现机制,它允许微服务应用将自身的信息(如IP地址、端口号、服务名称等)注册到注册中心,以便其他服务能够发现和调用该服务。常见的服务注册中心有Eureka、Consul、Zookeeper等。

服务发现是指客户端通过查询服务注册中心获取服务的实例信息,以便进行服务调用。当一个微服务应用启动时,它会将自己的信息注册到服务注册中心,其他微服务应用可以通过查询注册中心获取该服务的实例信息,从而实现服务的动态发现和调用。

Spring Cloud LoadBalancer通过与服务发现和注册中心配合使用,可以自动从注册中心获取服务的实例信息,并根据负载均衡策略选择合适的实例进行服务调用。它支持多种服务注册中心,如Eureka、Consul等,并且提供了丰富的负载均衡策略,如轮询、随机、权重等。

总结来说,Spring Cloud LoadBalancer的核心组件之一就是服务发现与注册中心,它通过与服务注册中心配合使用,实现了服务的动态发现和负载均衡。这个机制可以使得微服务应用之间的通信更加可靠和高效。


3.2 负载均衡算法的实现

Spring Cloud LoadBalancer 是 Spring Cloud 提供的一个用于负载均衡的组件,它的核心组件之一就是负载均衡算法的实现。

Spring Cloud LoadBalancer 支持多种负载均衡算法,其中包括常见的轮询算法、随机算法、加权轮询算法和加权随机算法等。这些算法都是通过实现 LoadBalancer 接口来完成的。

在 Spring Cloud LoadBalancer 中,负载均衡算法的实现主要包括以下几个步骤:

  1. 获取可用的服务实例列表:首先需要通过 DiscoveryClient 或者其他方式获取当前可用的服务实例列表。DiscoveryClient 是 Spring Cloud 提供的一个服务发现的组件,可以通过它来获取服务实例的信息。

  2. 选择合适的负载均衡算法:根据配置文件中的负载均衡策略来选择合适的负载均衡算法。Spring Cloud LoadBalancer 提供了多种负载均衡算法的实现,可以根据需要选择适合的算法。

  3. 根据算法选择一个服务实例:根据选定的负载均衡算法,从可用的服务实例列表中选择一个服务实例来处理请求。

  4. 更新服务实例的状态:在选择一个服务实例之后,需要更新该服务实例的状态,以便下次选择的时候可以考虑到其状态信息。

通过以上步骤,Spring Cloud LoadBalancer 可以实现负载均衡算法的选择和服务实例的选择功能。

总体来说,Spring Cloud LoadBalancer 的负载均衡算法的实现是通过选择合适的算法,并根据算法选择可用的服务实例来完成的。这样可以确保请求能够均衡地分发到不同的服务实例上,提高系统的可用性和稳定性。


3.3 请求转发与响应处理

Spring Cloud LoadBalancer的核心组件之一是请求转发与响应处理。请求转发是指根据负载均衡策略将客户端请求转发到目标服务实例上,而响应处理则是对目标服务实例返回的响应进行处理。

在Spring Cloud LoadBalancer中,请求转发和响应处理是由LoadBalancerClient和LoadBalancerInterceptor两个核心组件共同完成的。

LoadBalancerClient是负责请求转发的客户端组件,它通过负载均衡策略选择一个目标服务实例,并将请求转发给该实例。LoadBalancerClient的具体实现类根据使用的负载均衡器不同而有所不同,比如使用Ribbon作为负载均衡器的情况下,实现类为RibbonLoadBalancerClient。

LoadBalancerInterceptor是负责请求转发和响应处理的拦截器组件,它在请求发出之前会先调用LoadBalancerClient的choose方法选择一个目标服务实例,并将选择结果存储在请求上下文中,然后将请求转发给选中的目标服务实例。在接收到目标服务实例返回的响应后,LoadBalancerInterceptor会根据请求上下文中存储的选择结果,将响应返回给客户端。

除了请求转发和响应处理,Spring Cloud LoadBalancer还提供了一些其他功能,比如动态刷新负载均衡器的服务列表、支持自定义负载均衡策略等。这些功能都是基于LoadBalancerClient和LoadBalancerInterceptor这两个核心组件实现的。

第四章:Spring Cloud LoadBalancer的配置与使用

4.1 如何集成Spring Cloud LoadBalancer

要集成Spring Cloud LoadBalancer,您需要以下步骤:

  1. 在项目的pom.xml文件中添加Spring Cloud LoadBalancer的依赖项:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

         2. 创建一个Spring配置类,用于配置负载均衡器。您可以使用@LoadBalancerClient注释来指定要使用的负载均衡策略和服务名称        

@Configuration
public class LoadBalancerConfig {@Bean@LoadBalancerClient(name = "myService", configuration = MyLoadBalancerConfiguration.class)public ServiceInstanceListSupplier serviceInstanceListSupplier() {return new DiscoveryClientServiceInstanceListSupplier();}}

        3. 创建一个负载均衡配置类,用于配置负载均衡策略。您可以使用@ConditionalOnMissingBean注释来指定默认的负载均衡策略        

@Configuration
public class MyLoadBalancerConfiguration {@Bean@ConditionalOnMissingBeanpublic LoadBalancer loadBalancer() {return new RoundRobinLoadBalancer();}}

         4. 在需要使用负载均衡的地方,通过@LoadBalancerClient注释来指定要负载均衡的服务名称,并通过LoadBalancerClientFactorygetInstance方法来获取负载均衡器实例 

@RestController
public class MyController {@Autowiredprivate LoadBalancerClientFactory loadBalancerClientFactory;@GetMapping("/myService")public String myService() {LoadBalancerClient loadBalancerClient = loadBalancerClientFactory.getInstance("myService");ServiceInstance serviceInstance = loadBalancerClient.choose("myService");// 使用serviceInstance来调用服务// ...return "Hello";}}

         5. 部署和启动您的应用程序,并确保您的服务注册中心正常运行。                

以上就是集成Spring Cloud LoadBalancer的步骤。请注意,您还需要根据您的实际应用场景进行适当的配置和调整。


4.2 配置负载均衡规则

Spring Cloud LoadBalancer 是 Spring Cloud 提供的一个负载均衡组件,用于在微服务架构中实现服务间的负载均衡。在使用 Spring Cloud LoadBalancer 进行负载均衡时,可以通过配置负载均衡规则来指定服务的负载均衡策略。

Spring Cloud LoadBalancer 默认使用的是 Ribbon 作为负载均衡器,因此可以使用 Ribbon 提供的负载均衡规则来配置负载均衡策略。Spring Cloud LoadBalancer 提供了与 Ribbon 配置相兼容的方式来配置负载均衡规则。

在 Spring Boot 应用中使用 Spring Cloud LoadBalancer 进行负载均衡的配置方式如下:

  1. 引入依赖

在项目的 pom.xml 文件中添加 Spring Cloud LoadBalancer 的依赖:

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

         2. 配置负载均衡规则        

可以通过配置文件来指定负载均衡规则,或者通过编程的方式来动态配置负载均衡规则。

通过配置文件指定负载均衡规则的方式如下:

spring:cloud:loadbalancer:ribbon:enabled: truenfloadbalancer:rule-configurations:- <serviceName>:ZoneAvoidanceRule:Enabled: true

其中 &lt;serviceName> 为需要配置负载均衡规则的服务名,ZoneAvoidanceRule 为负载均衡规则的名称,可以根据实际需求选择不同的负载均衡规则。

通过编程的方式动态配置负载均衡规则的方式如下:

@Configuration
public class LoadBalancerConfig {@Autowiredprivate LoadBalancerClientFactory loadBalancerClientFactory;@Beanpublic ZoneAvoidanceRule zoneAvoidanceRule() {return new ZoneAvoidanceRule();}@PostConstructpublic void init() {ILoadBalancer loadBalancer = loadBalancerClientFactory.getLoadBalancer(serviceId);if (loadBalancer instanceof BaseLoadBalancer) {BaseLoadBalancer baseLoadBalancer = (BaseLoadBalancer) loadBalancer;baseLoadBalancer.setRule(zoneAvoidanceRule());}}
}

其中 zoneAvoidanceRule 为负载均衡规则的配置方法,init() 方法用于将负载均衡规则配置到负载均衡器中。

以上就是使用 Spring Cloud LoadBalancer 进行负载均衡的配置方法,可以根据实际需求选择不同的负载均衡规则来满足应用的需求。


4.3 负载均衡器的监控与调优

在使用Spring Cloud LoadBalancer进行负载均衡时,可以通过配置进行负载均衡器的监控与调优。下面是一些常见的配置和使用方法:

  1. 监控信息暴露:可以通过配置将负载均衡器的监控信息暴露出来,以便进行监控和调优。可以使用Spring Boot Actuator来实现,可以通过在应用的配置文件中添加以下配置来启用Actuator:

    management.endpoints.web.exposure.include=*
    

    这样就可以通过访问/actuator路径来获取负载均衡器的监控信息。

  2. 选择算法调优:Spring Cloud LoadBalancer支持多种选择算法,可以根据需求进行调优。默认的选择算法是RoundRobin,即轮询算法。可以通过在应用的配置文件中添加以下配置来指定选择算法:

    spring.cloud.loadbalancer.ribbon.enabled=true
    spring.cloud.loadbalancer.ribbon.rule-configurations.my-rule-config=org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactoryBean.MyRule
    

    这样就可以使用自定义的选择算法MyRule

  3. 配置重试机制:可以通过配置重试机制来提高负载均衡的可靠性。可以在应用的配置文件中添加以下配置:

    spring.cloud.loadbalancer.ribbon.retry.enabled=true
    spring.cloud.loadbalancer.ribbon.retry.maxAttempts=3
    spring.cloud.loadbalancer.ribbon.retry.onStatusCodes=500
    

    这样就可以启用重试机制,最大重试次数为3次,仅在遇到500状态码时进行重试。

  4. 设置服务器列表:可以通过配置来指定负载均衡器的服务器列表,以便进行负载均衡。可以在应用的配置文件中添加以下配置:

    spring.cloud.loadbalancer.services.my-service.urls=http://server1,http://server2
    

    这样就可以指定负载均衡器的服务器列表为http://server1http://server2

通过以上配置和使用方法,可以对Spring Cloud LoadBalancer进行监控和调优,提高负载均衡的性能和可靠性。

第五章:Spring Cloud LoadBalancer的高级特性

        详见《解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(二)

第六章:Spring Cloud LoadBalancer自定义负载均衡策略

        详见《解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(二)

第七章:Spring Cloud LoadBalancer实现高效负载均衡的技巧与注意事项

        详见《解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(二)

第八章:Spring Cloud LoadBalancer的实践案例

        详见《解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(二)

第九章:Spring Cloud LoadBalancer的未来展望

        详见《解密Spring Cloud LoadBalancer:实现高效负载均衡的魔法密卷(二)

第十章:结语

        总而言之,Spring Cloud LoadBalancer为我们提供了一个强大而简单的工具,帮助我们实现高效的负载均衡。它的配置和使用方法相对简单,同时提供了灵活的扩展性和自定义性。无论是构建小型项目还是大规模的分布式系统,Spring Cloud LoadBalancer都是一个值得依赖的工具。让我们将Spring Cloud LoadBalancer的魔法密卷应用于我们的系统中,为我们的微服务架构带来高效和可靠的负载均衡。希望本文能够对您有所启发,并在实际应用中取得成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 预制体与变体

预制体作用&#xff1a; 更改预制体&#xff0c;则更改全部的以预制体复制出的模型。 生成预制体&#xff1a; 当你建立好了一个模型&#xff0c;从层级拖动到项目中即可生成预制体。 预制体复制模型&#xff1a; 将项目中的预制体拖动到层级中即可复制。或者选择物体复制粘贴。…

Shell之字符处理

一、字符处理 1.1 cut命令 命令格式&#xff1a; cut [选项] 文件名 选项&#xff1a; -f 列号&#xff1a; 提取第几列-d 分隔符&#xff1a; 按照指定分割符进行分割&#xff0c;默认的分割符是制表符&#xff0c;注意分割符不能使用空格。示例&#xff1a; # 每个字段已…

如何选择垃圾收集器安全点安全区

如何选择垃圾收集器&安全点&安全区 如何选择垃圾收集器 优先调整堆的大小让服务器自己来选择如果内存小于100M&#xff0c;使用串行收集器如果是单核&#xff0c;并且没有停顿时间的要求&#xff0c;串行或JVM自己选择如果允许停顿时间超过1秒&#xff0c;选择并行或…

AWS ECS Fargate禁止公网访问

当在AWS ECS(Elastic Container Service)上运行任务时,默认情况下,ECS会自动为每个任务分配一个公有IP地址。然而,并不是所有的情况下都需要或希望任务具有公有IP地址(NAT或公网拉取镜像需要)。在某些情况下,你可能希望ECS任务只能通过私有IP地址访问,并且不暴露到公共网…

Jenkins自动化部署之流水线模式部署

文章目录 任务类型Pipeline流水线项目声明式的Pipeline脚本式Pipeline 示例脚本生成Tools配置示例 高级Pipeline Script from SCM 任务类型 在Jenkins中&#xff0c;有不同类型的任务&#xff08;项目&#xff09;适用于不同的构建需求。以下是一些常见的Jenkins任务类型&…

Vue.js 案例

Vue.js 是一个构建数据驱动的 web 界面的渐进式框架。它是目前前端开发领域非常热门的技术之一&#xff0c;因为它易于上手&#xff0c;功能强大&#xff0c;且与其他库或已有项目整合度高。 下面是一个简单的 Vue 项目实战步骤&#xff0c;帮助你了解如何使用 Vue.js 来创建一…

MYSQL03高级_新增用户、授予权限、授权底层表结构、角色理解

文章目录 ①. 登录服务器操作②. 用户的增删改③. 修改用户密码④. MySQL8密码管理⑤. 权限列表及原则⑥. 授予查看回收权限⑦. 底层权限表操作⑧. 角色的理解 ①. 登录服务器操作 ①. 启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下: mysql –h hostname|hos…

32单片机基础:TIM输出比较

这个输出比较功能是非常重要的&#xff0c;它主要是用来输出PWM波形,PWM波形又是驱动电机的必要条件&#xff0c;所以你如果想用STM32做一些有电机的项目&#xff0c;比如智能车&#xff0c;机器人等。 IC: Input Capture 输入捕获 CC:Capture/Compare一般表示输入捕获和输出…

【学习心得】浏览器开发者工具中出现的VM开头的JS文件是什么?

一、现象描述 在Chrome的开发者工具中&#xff0c;你可能会看到一些以“VM”开头的JavaScript文件&#xff08;如“VM111.js”&#xff09;。 二、VM文件到底是什么&#xff1f; “VM”表示的是Virtual Machine&#xff08;虚拟机&#xff09;&#xff0c;这些文件通常表示由浏…

利用Unity和OpenXR实现眼动追踪的基础指南

在虚拟现实(VR)领域&#xff0c;眼动追踪技术正逐渐成为增强用户交互体验的关键工具。本文将引导你通过Unity和OpenXR实现眼动追踪功能&#xff0c;特别是针对HTC Vive Focus 3这样的设备。我们将从配置环境开始&#xff0c;一直到编写获取眼动数据的脚本。 环境配置 安装Uni…

2-29算法习题总结

贪心问题 小A的糖果 题目描述 小 A 有 n n n 个糖果盒&#xff0c;第 i i i 个盒中有 a i a_i ai​ 颗糖果。 小 A 每次可以从其中一盒糖果中吃掉一颗&#xff0c;他想知道&#xff0c;要让任意两个相邻的盒子中糖的个数之和都不大于 x x x&#xff0c;至少得吃掉几颗糖…

网站文章被百度快速收录的工具

百度是中国最主要的搜索引擎之一&#xff0c;对于网站管理员来说&#xff0c;网站文章被百度快速收录是至关重要的&#xff0c;因为这直接影响着文章的曝光和网站的流量。然而&#xff0c;许多网站管理员都会问一个常见的问题&#xff1a;文章百度收录需要几天&#xff1f;在这…

C语言基础17 判断

断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。 C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。 下面是…

MYSQL01高级_Linux版安装、各级别字符集、字符集与比较规则、SQL大小写规范

文章目录 ①. MySQL - linux版安装②. 字符集的相关操作③. 各级别的字符集④. 字符集与比较规则(了解)⑤. SQL大小写规范⑥. sql_mode的合理设置 ①. MySQL - linux版安装 ①. 进入mysql官网,找到安装文件 ②. 将抽取出来的文件放在linux下的opt下 MySQL Community Serv…

WebSocket介绍与应用

介绍 WebSocket 是基于TCP的一种的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输。 HTTP协议和WebSocket协议对比&#xff1a; HTTP是短连接WebSocket是长连接…

Vue3 + MybatisPlus实现批量删除功能

目录 一、后端 1.1 编写后端接口 1.2 编写service和其实现类 二、前端 2.1 组件加多选样式 2.2 实现多选调用的方法 2.3 编写批量删除的按钮 2.4 执行批量删除请求代码 一、后端 1.1 编写后端接口 PostMapping("/batchDelete") public CommonResult<Boo…

Python中简单正则获取百度新闻页面所有超链接示例

一、示例代码&#xff1a; import re import requestsheaders {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/""85.0.4183.83 Safari/537.36"} resp requests.get(http://news.…

自动化构建平台(三)Linux搭建私有的docker镜像库之Harbor的安装和使用详解

文章目录 前言一、Harbor的安装第一步&#xff1a;安装docker第二步&#xff1a;安装docker-compose第三步&#xff1a;安装Harbor 二、Harbor登录三、Harbor项目管理第一步&#xff1a;创建项目第二步&#xff1a;推送镜像 四、Harbor权限控制五、Harbor自动清理多余的镜像手动…

centos(redhat)离线安装英伟达(nvidia)docker运行环境

安装docker环境 可自行百度 下载 在有网的linux环境下载 yumdownloader libnvidia-container1 \ libnvidia-container-tools \ nvidia-container-toolkit-base \ nvidia-container-toolkit安装 有依赖关系最好按照顺序安装 yum install libnvidia-container1-1.13.5-1.x8…

FPGA高端项目:FPGA基于GS2971的SDI视频接收+图像缩放,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收转HDMI输出应用本方案的SDI纯verilog图像缩放视频拼接应用本方案的SDI HLS图像缩放视频拼接应用本方案的SDI视频编码动态字符叠加输出应用本方案的SDI视频编码多路视频融合视频叠加应用FPGA的SDI…