当前位置: 首页 > news >正文

Ribbon负载均衡:提升应用性能与可靠性的秘密武器(一)

本系列文章简介:

        本系列文章将深入探讨Ribbon负载均衡的工作原理、应用场景和实践经验,帮助大家更好地理解和应用这一强大的技术。通过合理配置和优化Ribbon负载均衡,您可以为您的应用带来更高的性能和可靠性,从而获得竞争优势并满足用户的需求。欢迎大家订阅《Java技术栈高级攻略》专栏,一起学习,一起涨分!

目录

一、引言

1.1 负载均衡在微服务架构中的重要性

1.2 Ribbon简介与特点

二、Ribbon的工作原理

2.1 Ribbon的客户端负载均衡机制

2.2 负载均衡策略详解

2.2.1 轮询策略

2.2.2 随机策略

2.2.3 最少活跃调用策略

2.3 服务实例的健康检查与选择

三、Ribbon的配置与使用

3.1 Ribbon的配置项详解

3.2 集成Ribbon到Spring Cloud项目中

3.3 Ribbon的自定义配置与扩展

四、Ribbon 负载均衡的优势

4.1 提升应用性能

4.2 提高应用可靠性和可用性

五、Ribbon的负载均衡策略定制

六、Ribbon在高并发场景下的表现

七、Ribbon的最佳实践与应用案例

八、总结与展望

九、结语


一、引言

1.1 负载均衡在微服务架构中的重要性

负载均衡在微服务架构中扮演着重要的角色。微服务架构将一个大型应用拆分成多个小型服务,每个服务负责完成特定的功能。这些服务可能分布在多个服务器上,并且可能存在不同的负载情况。负载均衡的作用是将来自用户的请求分发到可用的服务实例上,以实现性能优化和高可用性。

以下是负载均衡在微服务架构中的重要性:

  1. 提高性能:微服务架构中的一个主要目标是提高整体系统的性能。负载均衡器可以将请求分发到空闲的服务实例上,避免某个实例过载,从而提高系统的响应速度和吞吐量。

  2. 实现水平扩展:负载均衡器可以轻松地将请求分发到多个服务实例上。当负载增加时,可以通过添加更多实例来水平扩展系统的容量,而无需对整个系统进行更改。这种扩展方式可以提高系统的可伸缩性和弹性。

  3. 实现高可用性:微服务架构中的一个关键要素是高可用性。负载均衡器可以监控服务实例的健康状态,并自动将请求转发到健康的实例上。如果某个实例出现故障或不可用,负载均衡器可以将流量转移到其他可用的实例,从而保持系统的可用性。

  4. 简化服务发现和动态路由:微服务架构中服务实例的数量是动态变化的,因此需要一种机制来发现和路由请求到正确的实例上。负载均衡器可以根据配置或动态发现机制,自动从服务注册中心获取可用的服务实例,并将请求路由到正确的实例上。

总之,负载均衡在微服务架构中起到至关重要的作用,它不仅可以提高性能和可用性,还可以实现系统的伸缩性和弹性,简化服务发现和动态路由。


1.2 Ribbon简介与特点

Ribbon是Netflix开源的一款负载均衡器,它可以帮助应用程序实现客户端负载均衡。Ribbon可以与各种前端组件轻松集成,如Spring Cloud、Eureka、Zuul等。

Ribbon的主要特点包括:

  1. 客户端负载均衡:Ribbon工作在客户端,它通过维护服务实例和根据特定的负载均衡策略选择服务实例,来实现负载均衡。相比于传统的服务端负载均衡器,Ribbon更加灵活和可扩展。

  2. 多种负载均衡算法:Ribbon提供了多种负载均衡算法,包括轮询、随机、权重等。开发人员可以根据具体的需求选择合适的负载均衡算法。

  3. 服务实例自动刷新:Ribbon与服务注册中心(如Eureka)集成,可以自动获取可用的服务实例列表,并实时更新。这意味着当新的服务实例上线或下线时,Ribbon能够及时感知到,并自动调整负载均衡策略。

  4. 容错机制:Ribbon提供了容错机制,当某个服务实例不可用时,会自动切换到其他可用的服务实例。这可以提高系统的可用性和稳定性。

  5. 定制化配置:Ribbon支持通过配置文件或编程方式进行负载均衡的定制化配置。开发人员可以根据具体的需求,对负载均衡算法、重试机制、超时时间等进行灵活配置。

总的来说,Ribbon是一款功能强大的负载均衡器,它能够帮助应用程序实现分布式系统中的客户端负载均衡,提高系统的性能、可用性和稳定性。

二、Ribbon的工作原理

2.1 Ribbon的客户端负载均衡机制

Ribbon是Netflix开源的一个客户端负载均衡库,常用于微服务架构中。

Ribbon的客户端负载均衡机制主要包括以下几个步骤:

  1. 服务实例的获取:通过注册中心或者配置文件中的服务列表,Ribbon会获取可用的服务实例列表。

  2. 负载均衡策略选择:Ribbon提供了多种负载均衡策略,包括轮询、随机、权重等,根据配置文件或者代码中的配置选择相应的负载均衡策略。

  3. 服务实例选择:根据选择的负载均衡策略,Ribbon会根据一定的规则选择一个可用的服务实例。

  4. 服务实例的调用:Ribbon将调用请求发送到选中的服务实例。

  5. 响应处理:Ribbon根据调用结果,处理服务实例的状态信息,比如是否正常、是否超时等。

  6. 故障转移:如果选中的服务实例不可用,Ribbon会尝试选择下一个可用的服务实例进行请求调用。

总的来说,Ribbon的客户端负载均衡机制是通过选择负载均衡策略,从服务实例列表中选择一个可用的服务实例,并调用该服务实例来实现负载均衡。


2.2 负载均衡策略详解

2.2.1 轮询策略

轮询(Round Robin)是一种常用的负载均衡策略之一。它的工作原理如下:

  1. 当收到客户端请求时,负载均衡器按照事先定义好的顺序,依次将请求分配给后端服务器。例如,有三台服务器A、B、C,那么第一个请求将被分配给服务器A,第二个请求将被分配给服务器B,第三个请求将被分配给服务器C,以此类推。

  2. 如果所有后端服务器都已分配到了请求,那么下一个请求将再次从第一个服务器开始分配。

  3. 轮询策略的优点是简单且公平,每个服务器都会被平均分配请求,避免了某个服务器负载过重而其他服务器负载过轻的情况。

  4. 然而,轮询策略无法动态适应服务器的运行状态。如果某个服务器出现问题或者负载过高,轮询策略无法主动将请求分配给其他服务器,也无法根据服务器的性能调整权重。因此,在实际应用中,通常会配合其他负载均衡策略使用,以提高系统的可靠性和性能。

需要注意的是,轮询策略可能存在一些问题。例如,如果某个后端服务器的处理能力比其他服务器低,那么它可能会成为性能瓶颈,影响系统的整体性能。此外,如果后端服务器的响应时间不一致,轮询策略可能导致某些请求等待时间过长。因此,实际使用中需要仔细评估系统的需求和性能,并选择合适的负载均衡策略。


2.2.2 随机策略

随机策略是一种简单的负载均衡策略,其工作原理是当有多个后端服务器时,每次请求都随机选择一个服务器进行处理。

具体的实现方法是,当一个请求到达负载均衡器时,负载均衡器会从可用的服务器列表中随机选择一个服务器,并将请求转发到该服务器上进行处理。因为每次选择的服务器都是随机的,所以每个服务器都有相等的机会获得请求。

随机策略的优点是实现简单,不需要额外的计算和记录,能够较为均匀地分配请求到各个服务器上。同时,随机策略适用于请求量比较小且请求类型比较简单的场景,因为随机策略没有考虑服务器的负载情况和性能差异。

然而,随机策略也有一些缺点。首先,由于每次选择服务器都是完全随机的,可能会导致某些服务器负载过高,而其他服务器负载过低的情况。其次,当某个服务器发生故障或者下线时,随机策略无法自动感知和调整,仍然会将请求转发到该服务器上,导致请求失败或者延迟。

因此,在实际应用中,随机策略一般会结合其他负载均衡策略一起使用,以克服其缺点。例如,可以使用健康检查来监测服务器的状态,当服务器发生故障时,负载均衡器会自动将该服务器从可用列表中移除,避免将请求转发到故障服务器上。


2.2.3 最少活跃调用策略

最少活跃调用策略是一种常见的负载均衡策略,用于在多个服务提供者之间分发请求。该策略的工作原理如下:

  1. 当一个服务消费者需要调用某个服务提供者时,Ribbon会先统计每个服务提供者的当前活跃调用数。
  2. 活跃调用数表示当前正在处理的请求个数,可以理解为服务提供者的负载情况。
  3. Ribbon会选择活跃调用数最小的服务提供者,将请求分发给它。
  4. 如果有多个活跃调用数最小的服务提供者,Ribbon会根据一定的规则进行选择,比如轮询选择或随机选择。
  5. 一旦请求被分发给某个服务提供者,它的活跃调用数就会增加。

通过使用最少活跃调用策略,可以实现请求的均衡分发,避免某些服务提供者过载而导致性能下降。这种策略适用于服务提供者之间的负载不平衡情况,可以有效地提高系统的可用性和性能。

需要注意的是,活跃调用数的统计需要依赖于服务提供者的一些监控信息,比如正在处理的请求个数。这些信息可以通过一些监控工具或健康检查接口获取。另外,最少活跃调用策略只是负载均衡的一种策略,可以与其他策略结合使用,以适应不同的场景和需求。

2.3 服务实例的健康检查与选择

Ribbon是一个负载均衡器,它的工作原理是基于服务实例的健康检查与选择。

在Ribbon中,首先会通过服务注册中心获取所有可用的服务实例列表。然后,Ribbon会定期对这些服务实例进行健康检查,以确定它们是否可用。通常,健康检查会发送一个简单的请求至服务实例,并根据返回结果来判断服务实例的健康状态。

根据服务实例的健康状态,Ribbon会进行服务实例的选择。具体选择策略可以根据实际需求进行配置,常见的选择策略有以下几种:

  1. 轮询(Round Robin):按照顺序依次选择每个服务实例。这是最常用的负载均衡策略。

  2. 随机(Random):随机选择一个服务实例。

  3. 权重(Weighted):根据服务实例的权重来选择。权重越高的服务实例被选中的概率越大。

  4. 最少连接(Least Connection):选择当前连接数最少的服务实例。

除了以上几种常见的选择策略,Ribbon还支持自定义的选择策略,可以根据实际需求来实现自己的选择逻辑。

总之,Ribbon通过对服务实例的健康检查和选择策略的配置,实现了负载均衡的功能,确保请求能够平均分发到可用的服务实例上,提高系统的可用性和性能。

三、Ribbon的配置与使用

3.1 Ribbon的配置项详解

Ribbon是一个负载均衡器和客户端HTTP库。它可以帮助你分发客户端请求到不同的服务器实例上,从而实现负载均衡。Ribbon提供了很多配置选项来控制其行为。

以下是Ribbon的一些常用配置项:

  1. ribbon.IsSecure: 指定是否使用安全连接(HTTPS)。默认为true。

  2. ribbon.MaxAutoRetries: 指定在尝试发送请求之前,Ribbon应该尝试的最大次数。默认为0,表示不进行重试。

  3. ribbon.MaxAutoRetriesNextServer: 指定在尝试切换到另一个服务器实例之前,Ribbon应该尝试的最大次数。默认为1。

  4. ribbon.ConnectTimeout: 指定与服务器建立连接的超时时间(以毫秒为单位)。默认为1000。

  5. ribbon.ReadTimeout: 指定从服务器读取响应的超时时间(以毫秒为单位)。默认为1000。

  6. ribbon.OkToRetryOnAllOperations: 指定是否对所有操作(GET、POST等)都进行重试。默认为false。

  7. ribbon.ServerListRefreshInterval: 指定更新服务器列表的间隔时间(以毫秒为单位)。默认为30000。

  8. ribbon.ServerListRefreshConnectionTimeout: 指定更新服务器列表时,尝试建立连接的超时时间(以毫秒为单位)。默认为2000。

这些是Ribbon的一些常用配置项,可以根据自己的需求进行配置。


3.2 集成Ribbon到Spring Cloud项目中

要将Ribbon集成到Spring Cloud项目中,需要以下步骤:

        1. 确保项目中已经引入了Spring Cloud的依赖。在项目的pom.xml文件中添加以下依赖:

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

        2. 在启动类上添加@EnableDiscoveryClient注解,以启用服务发现功能,并让Ribbon能够自动发现可用的服务实例。例如:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

        3. 在配置文件中配置Ribbon的负载均衡策略。在application.properties或application.yml文件中添加以下配置:

# 配置负载均衡策略为随机
ribbon:# 负载均衡策略NIWSServerListClassName: com.netflix.loadbalancer.RandomRule

        4. 在RestTemplate的bean定义中使用@LoadBalanced注解,以启用Ribbon的负载均衡功能。例如:

@Configuration
public class RibbonConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}

        5. 在需要调用其他服务的地方使用RestTemplate进行服务调用。例如:

@RestController
public class MyController {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/hello")public String hello() {String result = restTemplate.getForObject("http://service-provider/hello", String.class);return result;}
}

请注意,上述示例中的service-provider是要调用的服务的名称,它会通过服务发现功能自动解析为实际的服务实例地址。

这样,就成功将Ribbon集成到Spring Cloud项目中了。Ribbon将根据配置的负载均衡策略,选择可用的服务实例进行调用。


3.3 Ribbon的自定义配置与扩展

Ribbon是一个用于客户端负载均衡的开源项目,它可以与Spring Cloud等微服务框架集成使用。在使用Ribbon时,可以通过自定义配置和扩展来满足特定的需求。

  1. 自定义配置: 可以通过在配置文件中添加以下属性来进行自定义配置:
# Ribbon的客户端配置,可以设置全局的负载均衡算法和连接超时时间等
ribbon:ConnectTimeout: 3000  # 连接超时时间为3秒ReadTimeout: 5000  # 读取超时时间为5秒NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 使用随机负载均衡算法# 针对具体的服务进行配置
service-name:ribbon:ReadTimeout: 6000  # 读取超时时间为6秒

可以通过配置文件中的属性来配置Ribbon的行为,如连接超时时间、读取超时时间、负载均衡算法等。

        2. 扩展Ribbon的功能:在Ribbon中,可以通过扩展接口来实现自定义的功能。以下是一些常用的扩展方法:

  • 自定义负载均衡规则: 默认情况下,Ribbon使用的是轮询算法进行负载均衡,但可以通过实现IRule接口来扩展自定义的负载均衡规则。
  • 自定义服务列表获取方式: 默认情况下,Ribbon从Eureka或Consul等注册中心获取服务列表,但可以通过实现ILoadBalancer接口来扩展自定义的服务列表获取方式。
  • 自定义服务器选择逻辑: 默认情况下,Ribbon使用的是ZoneAvoidanceRule规则进行服务器选择,但可以通过实现IPing和ServerListFilter接口来扩展自定义的服务器选择逻辑。

通过自定义配置和扩展,可以使Ribbon更好地满足特定的业务需求。

四、Ribbon 负载均衡的优势

4.1 提升应用性能

Ribbon 负载均衡有以下几个优势,可以提升应用性能:

  1. 分布式流量调度:Ribbon 能够将请求流量分发到多个服务实例上,从而平衡各个实例的负载。通过分散流量,可以避免单个实例被过度请求而导致性能下降。

  2. 故障转移和容错:Ribbon 能够监测后端服务实例的健康状况,一旦发现某个实例故障,可以自动将请求转发到其他健康的实例上。这样可以提高系统的可用性和容错能力。

  3. 算法选择和策略配置:Ribbon 提供了多种负载均衡算法和策略配置的选项,可以根据实际需求对流量进行细粒度的调控。例如,可以根据服务器的负载情况选择合适的调度算法,或者设置优先级策略来确保高优先级的请求能够优先处理。

  4. 缓存和重试:Ribbon 支持请求的缓存和重试机制。通过缓存请求的结果,可以减少对后端服务的访问次数,从而提高系统性能。同时,对于处理失败的请求,Ribbon 可以自动进行重试,增加请求的成功率。

综上所述,Ribbon 负载均衡可以提高应用的性能和可靠性,通过分散流量、容错处理、灵活的调度策略以及缓存和重试等功能,来提升应用的整体性能。

4.2 提高应用可靠性和可用性

Ribbon 负载均衡的优势之一是提高应用的可靠性和可用性。以下是一些具体的优势:

  1. 高可靠性:Ribbon 能够自动检测和剔除故障节点,当某个节点不可用时,Ribbon 会自动将请求转发到其他健康节点,从而保证应用的可靠性。

  2. 降低单点故障风险:通过将请求分发到多个节点,Ribbon 能够减少单个节点故障对应用的影响。即使某个节点发生故障,其他节点仍然可以继续处理请求,降低了单点故障的风险。

  3. 动态调整负载:Ribbon 能够根据节点的负载情况动态调整请求的分发策略。当某个节点的负载过高时,Ribbon 可以将请求转发到负载较低的节点上,从而平衡整个系统的负载,提高可用性。

  4. 灵活配置:Ribbon 提供了丰富的配置选项,可以根据应用的需求进行灵活的配置。例如,可以根据节点的性能指标、地理位置等因素进行权重调整和路由策略的配置,从而进一步提高应用的可靠性和可用性。

总的来说,Ribbon 负载均衡能够提高应用的可靠性和可用性,通过动态调整负载、降低单点故障风险和灵活配置等方式,保证应用能够始终处于可用状态,提供稳定的服务。

五、Ribbon的负载均衡策略定制

        详见《Ribbon负载均衡:提升应用性能与可靠性的秘密武器(二)

六、Ribbon在高并发场景下的表现

        详见《Ribbon负载均衡:提升应用性能与可靠性的秘密武器(二)

七、Ribbon的最佳实践与应用案例

        详见《Ribbon负载均衡:提升应用性能与可靠性的秘密武器(二)

八、总结与展望

        详见《Ribbon负载均衡:提升应用性能与可靠性的秘密武器(二)

九、结语

        总之,Ribbon负载均衡作为提升应用性能和可靠性的秘密武器,为企业和组织提供了一种简单而高效的解决方案。它能够通过分散负载、提升吞吐量和保证高可靠性,提升用户体验,满足不断增长的应用需求。因此,无论是大型企业还是中小型组织,都可以将Ribbon负载均衡作为其应用架构中的重要组成部分,从而获得更好的业务效果和竞争力。希望本文能够对您有所启发,并在实际应用中取得成功。

相关文章:

Ribbon负载均衡:提升应用性能与可靠性的秘密武器(一)

本系列文章简介&#xff1a; 本系列文章将深入探讨Ribbon负载均衡的工作原理、应用场景和实践经验&#xff0c;帮助大家更好地理解和应用这一强大的技术。通过合理配置和优化Ribbon负载均衡&#xff0c;您可以为您的应用带来更高的性能和可靠性&#xff0c;从而获得竞争优势并满…...

python递归算法

递归算法 一、嵌套调用的过程二、递归的基本原则1、递归的基本原则2、无限递归调用3、正常递归调用4、阶乘问题5、力扣&#xff1a;231. 2 的幂6、力扣面试题 08.05. 递归乘法7、力扣、326. 3 的幂8、力扣342. 4的幂 一、嵌套调用的过程 def show1():print("show 1 run s…...

azure devops工具实践分析

对azure devops此工具的功能深挖&#xff0c;结合jira的使用经验的分析 1、在backlog的功能描述&#xff0c;可理解为需求项&#xff0c;这里包括了bug&#xff0c;从开发的角度修复bug也是个工作项&#xff0c;所以需求的范围是真正的需求&#xff08;开发接收到的已经确认的…...

2024年2月19日-2月25日(全面进行+收集免费虚幻商城资源,20小时,合计2561小时,剩余7439小时)

试试周一到周五重点进行&#xff0c;周末抄写源码&#xff0c;周一晚上看书很快就在22&#xff1a;00睡着&#xff0c;早上可以看看视频教程&#xff0c;出租车上补觉。 执行如下&#xff1a; 周一&#xff1a; 8&#xff1a;01-9&#xff1a;20ue4 rpg&#xff08;184&#xf…...

Ubuntu制作本地安装源

Ubuntu制作本地安装源 应用场景离线安装包的制作&#xff08;可联网电脑&#xff09;更新源安装软件 生成依赖关系在另外一台Ubuntu上离线安装安装 使用deb http方式安装安装nginx更新ubuntu数据库&#xff0c;并安装应用 应用场景 当我们需要在多台电脑安装同一个软件,并且软…...

java springmvc/springboot 项目通过HttpServletRequest对象获取请求体body工具类

请求 测试接口 获取到的 获取到打印出的json字符串里有空格这些&#xff0c;在json解析的时候正常解析为json对象了。 工具类代码 import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.we…...

新手怎么使用github?

GitHub新手使用指南&#xff0c;涵盖了从注册、创建仓库、版本控制基本操作到SSH密钥配置等关键步骤&#xff1a; 第一步&#xff1a;注册与登录 访问GitHub官方网站&#xff1a;https://github.com。点击页面右上角的"sign up"按钮开始注册账号。输入有效的电子邮…...

CSS_实现三角形和聊天气泡框

如何用css画出一个三角形 1、第一步 写一个正常的盒子模型&#xff0c;先给个正方形的div&#xff0c;便于观察&#xff0c;给div设置宽高和背景颜色 <body><div class"box"></div> </body> <style>.box {width: 100px;height: 100px…...

VPX基于全国产飞腾FT-2000+/64核+复旦微FPGA的计算刀片

6U VPX计算板 产品简介 产品特点 飞腾计算平台&#xff0c;国产化率100% VPX-MPU6902是一款基于飞腾FT-2000/64核的计算刀片&#xff0c;主频2.2GHz&#xff0c;负责业务数据流的管控和调度。搭配自带独立显示芯片的飞腾X100芯片&#xff0c;可用于于各类终端及服务器类应用场…...

ifcplusplus 示例 函数中英文 对照分析

有需求&#xff0c;需要分析 ifc c渲染&#xff0c;分析完&#xff0c;有 230个函数&#xff0c;才能完成一个加载&#xff0c;3d加载真的是大工程&#xff01; 函数中英文对照表&#xff0c;方便 日后开发&#xff0c;整理思路顺畅&#xff01;&#xff01;&#xff01;&#…...

天一个数据分析题(一百七十三)

聚类算法的主要应用场景是用户分群&#xff0c;聚类是一种无监督方法&#xff0c;以下哪个不是衡量聚类效果好坏的评估方法&#xff08;&#xff09;。 A. 轮廓系数 B. 平方根标准误差 C. ARI(调整的兰德系数) D. 相关系数 题目来源于CDA模拟题库 点击此处获取答案...

尚硅谷(SpringCloudAlibaba微服务分布式)学习代码Eureka部分

1.项目结构 2.cloud2024 pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.a…...

arm服务器上部署kibana

1.首先需要从elasticsearch对应的kibana版本(arm) ​​​​​​Download Kibana Free | Get Started Now | Elastic 注意:选平台时切勿选错,linux aarch64,并选择elasticsearch对应的历史版本 2.可以通过rz命令上传压缩包至 linux 服务器进行解压&#xff0c;存放路径建议和e…...

Redis之二:Redis 常用命令

Redis 命名不区分大小写 0.登录远程服务器 如果需要在远程 redis 服务上执行命令&#xff0c;同样我们使用的也是 redis-cli 命令。 语法 $ redis-cli -h host -p port -a password 获取配置信息&#xff1a; CONFIG GET CONFIG_SETTING_NAME 例&#xff1a; CONFIG GE…...

npm 镜像源切换与设置

项目背景 依赖安装中断或响应特别慢。 可以看到当前所用的镜像是 https://registry.npmjs.org 。 切换淘宝镜像之后总算能够安装下来 命令行模式 查看当前镜像源 # 查看当前镜像源 npm config get registry 可以看到默认情况下是官方默认全局镜像 https://registry.npmjs.o…...

【HDFS】Decommision(退役) EC数据节点剩最后几个块卡住的问题

一、背景 近期操作退役EC集群的节点。在退役的过程中,遇到了一些问题。特此总结一下。 本文描述的问题现象是: 每一批次退役10个节点,完全退役成功后开始操作下一批。 但是,中间有一批次有2台节点的Under Replicated Blocks一直是1,不往下降。 处于Decommissioning状态卡…...

MySQL知识点归纳总结(一)

1、事务的四大特性&#xff1f; 事务特性ACID&#xff1a;原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;、持久性 &#xff08;Durability&#xff09;。 原子性是指事务包含的所有操作要么…...

SocketWeb实现小小聊天室

SocketWeb实现小小聊天室 消息推送的常见方式轮询长轮询SSE&#xff08;server-sent event&#xff09;&#xff1a;服务器发送事件WebSocketWebSocket简介WebSocket API 实现小小聊天室实现流程消息格式客户端-->服务端服务端-->客户端 消息推送的常见方式 轮询 浏览器…...

如何在启用Secure Boot的Ubuntu 22.04电脑中安装使用VirtualBox 6.1

我使用的是华为Matebook X Pro笔记本电脑&#xff0c;默认开启了UEFI安全引导&#xff08;UEFI Secure Boot&#xff09;&#xff0c;安装了Windows和Ubuntu双操作系统&#xff0c;平时基本上都是使用Ubuntu 22.04&#xff08;Linux Mint 21.3&#xff09;&#xff0c;使用上也…...

基于B/S+MySQL+Tomcat开发的旅游信息管理系统

基于B/SMySQLTomcat开发的旅游信息管理系统 项目介绍&#x1f481;&#x1f3fb; 塞北村镇旅游网站设计主要用于实现旅游景点信息管理&#xff0c;基本功能包括&#xff1a;主界面模块设计&#xff0c;用户注册模块&#xff0c;旅游景点模块&#xff0c;酒店预订模块&#xff0…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...