Eureka使用详解

    • 介绍
    • 主要特点
    • 主要功能
    • 与常用服务注册中心的比较
      • Eureka与Zookeeper的区别和联系
      • Eureka与Nacos的区别与联系
      • Eureka与Consul的区别与联系
    • 安装部署
    • Eureka与CAP理论
    • Eureka实现实时上下线
    • Eureka常用注解
    • Eureka架构模式

在这里插入图片描述

介绍

Eureka是一个基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移。在Spring Cloud微服务架构中,Eureka通常用作注册中心。

Eureka的基本原理是:服务在Eureka上注册,然后每隔30秒发送心跳来更新它们的租约。如果客户端不能多次续订租约,那么它将在大约90秒内从服务器注册表中剔除。

Eureka客户端与服务器之间的通信采用客户端发现模式。Eureka客户端将关于运行实例的信息注册到Eureka服务器,并在每隔30秒发送心跳来更新注册信息。客户端还会从服务器获取注册表信息并在本地缓存,以便查找其他服务。当客户端关机时,它会向Eureka服务器发送一个取消请求,从服务器的实例注册表中删除实例。

此外,Eureka还有一个自我保护模式。如果Eureka服务器检测到超过预期数量的注册客户端以一种不优雅的方式终止了连接,并且同时正在等待被驱逐,那么它们将进入自我保护模式。这样做是为了确保灾难性网络事件不会擦除Eureka注册表数据,并将其向下传播到所有客户端。

在这里插入图片描述

主要特点

Eureka作为服务注册与发现的解决方案,具有以下优点:

  1. 故障转移:Eureka的客户端能够自动从宕机的服务器切换到新的Eureka节点,无需担心“掉队”的服务器恢复后被剔除的风险。
  2. 客户端缓存功能:即便Eureka集群中所有节点都失效,或者发生网络分割故障导致客户端不能访问任何一台Eureka服务器,Eureka服务的消费者仍然可以通过Eureka客户端缓存来获取现有的服务注册信息。
  3. 网络分割处理:Eureka被设计用来应付范围更广的网络分割故障,可以在同一个子网中实现新发布的服务仍然可以被发现与访问。
  4. 心跳检测机制:Eureka内置心跳服务,可以淘汰一些“濒死”的服务器。
  5. 支持异地多活:Eureka可以满足这种需求,在多个地域部署服务提供者,当某个地域出现问题时,可以切换到其他地域。

然而,Eureka也存在一些缺点:

  1. 数据存储策略:Eureka的数据是全量的存储在集群中的每个服务器上的,这可能导致扩展性比较差。
  2. 服务管理粒度:Eureka的服务管理的粒度是系统级别的,数据模型的key就是系统id,value就是所有注册的该系统的ip。虽然可以提供接口+版本号级别的服务管理粒度控制,但仍然无法精确的感知不同版本的服务提供方的不同的服务。

在这里插入图片描述

主要功能

Eureka是Netflix开发的服务发现框架,主要用于定位运行在AWS云或其他环境中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka的功能主要包括以下几点:

  1. 服务注册:服务提供者在启动时,会将自己的服务信息注册到Eureka Server中,Eureka Server会存储这些信息。
  2. 服务发现:Eureka Client可以从Eureka Server中查询和获取服务注册表中的信息,然后缓存到本地,周期性地刷新服务状态。这样,服务消费者就能够通过Eureka Client找到服务提供者的地址,并进行调用。
  3. 健康检查:Eureka有一个心跳检测机制,服务提供者会每隔30秒向Eureka Server发送一次心跳请求,报告自己的健康状态。如果Eureka Server在一定时间内没有收到某个服务提供者的心跳,就会认为该服务提供者已经宕机,并将其从服务注册表中剔除。
  4. 负载均衡:如果同一个服务有多个提供者,Eureka Client还提供了负载均衡的策略,可以从中选择一个服务提供者进行调用。

Eureka通过服务注册、服务发现、健康检查和负载均衡等功能,帮助实现了服务的有效调用和故障转移,提高了系统的可用性和可伸缩性。

在这里插入图片描述

与常用服务注册中心的比较

Eureka与Zookeeper的区别和联系

Eureka和Zookeeper都是服务注册与发现的解决方案,但它们在实现方式和应用场景上存在一些差异。

  1. 数据一致性和可用性:Zookeeper采用了Zab协议来实现数据一致性,在选举过程中会选出一个领导者(Leader)来负责数据读写操作,其他节点作为跟随者(Follower)只进行数据读取操作。这种机制保证了Zookeeper集群的数据一致性。而Eureka则保证了高可用性(Availability),各个节点之间是平等的,每个节点都可以处理请求,Eureka客户端在本地缓存服务注册表信息,保证了在Eureka Server短暂不可用时仍能提供服务。
  2. 负载均衡:Zookeeper本身并不提供负载均衡功能,需要结合其他工具或算法实现。而Eureka内置了简单的负载均衡机制,可以根据服务提供者的权重和健康状况进行负载分配。
  3. 自我保护模式:在Eureka中,如果客户端检测到服务器节点数小于一半,就会进入自我保护模式,保证服务可用性。而Zookeeper在选举过程中如果选不出领导者,会进行故障转移,通过选举产生新的领导者。

Eureka和Zookeeper都是优秀的服务注册与发现解决方案,具有各自的特点和适用场景。选择使用哪种方案取决于具体的业务需求和技术要求。

在这里插入图片描述

Eureka与Nacos的区别与联系

Eureka和Nacos都是开源的、易于使用的、功能丰富的平台,用于构建云原生应用。它们都提供了服务发现、配置管理和动态服务路由等功能。然而,Eureka和Nacos在某些方面存在一些差异:

  1. 服务发现:Eureka采用AP(可用性优先)的方式进行服务发现,这意味着如果某个服务实例出现问题,Eureka仍会将其标记为可用,可能会将请求路由到问题实例。而Nacos支持CP(一致性优先)的方式,当某个服务实例出现问题时,Nacos会将其从服务列表中剔除,保证服务的一致性。
  2. 配置管理:Nacos提供了更为强大的配置管理功能,支持动态调整服务配置,而Eureka的配置管理功能相对简单。
  3. 动态服务路由:Nacos支持基于DNS的动态服务发现和路由,而Eureka主要通过客户端实现服务的动态发现和路由。
  4. 开放性:Nacos是一个开放的平台,许多功能都是在社区驱动下开发的,这意味着用户可以根据自己的需求进行定制化开发。而Eureka则更多地被设计为一个闭源的、被Spring Cloud生态系统所集成的解决方案。
  5. 地域性:Eureka在AWS平台上的使用更加广泛,因为它是Netflix开源组件的一部分,Netflix在AWS上的部署被广泛参考和使用。

尽管存在这些差异,Eureka和Nacos都可以很好地满足云原生应用的需求,选择哪一个取决于具体的项目需求和团队的技术栈。

在这里插入图片描述

Eureka与Consul的区别与联系

Eureka和Consul都是服务发现和配置管理的解决方案,它们在云原生应用中发挥着重要作用。尽管它们在功能和实现方式上有些相似,但也有一些明显的区别:

  1. 一致性保证:Consul使用Raft协议来复制状态,确保强一致性。Eureka则提供了AP(可用性优先)的服务发现机制,牺牲了一致性以优先保证可用性。
  2. 健康检查:Consul支持丰富的健康检查功能,包括TCP、HTTP、Nagios/Sensu兼容脚本或基于Eureka的TTL。Eureka也提供健康检查,并且其注册速度相对较快。
  3. 客户端节点参与健康检查:Consul的客户端节点参与基于八卦的健康检查,分发健康检查工作,而不是像集中式心跳检测那样成为可扩展性挑战。Eureka则通过客户端节点参与基于TCP或HTTP的健康检查。
  4. 领导选举和集群协调:Consul使用Raft协议进行领导选举和集群协调,这意味着它可以作为领导选举和集群协调的锁定服务。Eureka则不提供类似的一致性保证,通常需要为需要执行协调或具有更强一致性需求的服务运行ZooKeeper。
  5. 功能丰富度:Consul提供了丰富的功能,包括服务发现、健康检查、锁定、密钥/值存储、多数据中心联合、事件系统和ACL等。Eureka也提供了服务发现和健康检查功能,但其功能集相对较为有限。
  6. 与其他技术的集成:Consul可以与许多其他技术集成,如Kubernetes、Envoy、Traefik等。Eureka通常与Spring Cloud生态系统集成。

Eureka和Consul都是强大的服务发现和配置管理工具,但它们在一致性保证、健康检查、领导选举和集群协调以及功能丰富度等方面存在差异。选择哪一个取决于具体的项目需求和团队的技术栈。

在这里插入图片描述

在这里插入图片描述

安装部署

  • 单节点部署

Eureka单节点部署的步骤如下:

  1. 创建一个Spring Boot项目,并引入Eureka Server依赖。
  2. 在Spring Boot项目中配置Eureka Server相关环境,包括端口号、主机名等。
  3. 启动Spring Boot项目,此时Eureka Server会自动启动。
  4. 在Spring Boot项目中配置Eureka Client相关环境,包括Eureka Server的地址等。
  5. 启动Spring Boot项目,此时Eureka Client会自动向Eureka Server注册自己的服务信息。
  6. 在Spring Boot项目中通过Eureka Client查询和获取已注册的服务信息,并进行调用。
  7. Eureka Server会根据服务提供者的健康状态和负载情况,自动进行负载均衡和故障转移。

以上步骤可以完成Eureka单节点部署,实现服务的注册、发现、调用、负载均衡和故障转移等功能。需要注意的是,在实际应用中,为了保证服务的可用性和可伸缩性,通常会部署多个Eureka节点,并通过集群部署方式来实现高可用性。

  • 集群部署

Eureka集群部署需要多个节点协同工作,以提高服务的可用性和可伸缩性。以下是Eureka集群部署的步骤:

  1. 准备两台或多台虚拟机或服务器,用于部署Eureka节点。
  2. 在每台虚拟机或服务器上安装Java开发工具包(JDK)和Spring Boot。
  3. 在每个节点上创建Eureka Server项目,并添加Eureka Server依赖。
  4. 在每个节点的配置文件中,添加其他Eureka节点的主机名或IP地址,以便节点之间能够互相通信。
  5. 启动每个Eureka节点,并确保它们能够相互通信和通信。
  6. 在每个Eureka节点上配置Eureka Client,以便将服务注册到Eureka Server并从Eureka Server获取服务信息。
  7. 在每个Spring Boot项目中配置Eureka Client的相关环境,包括Eureka Server的地址等。
  8. 启动每个Spring Boot项目,并确保它们能够注册到Eureka Server并从Eureka Server获取服务信息。
  9. Eureka Server集群会自动进行负载均衡和故障转移,根据服务提供者的健康状态和负载情况,将请求转发给可用的服务提供者。

通过以上步骤,可以完成Eureka集群部署,实现服务的注册、发现、调用、负载均衡和故障转移等功能。在实际应用中,可以根据需要增加或减少节点数量,以适应业务的发展和变化。

在这里插入图片描述

Eureka与CAP理论

Eureka与CAP理论有密切的联系。CAP理论,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)的理论,指出在一个分布式系统中,一致性、可用性和分区容错性三个需求不能同时满足。Eureka作为一个服务注册与发现的解决方案,也是遵循了CAP理论。

在Eureka中,CAP理论表现为以下几个方面:

  1. 一致性(C):Eureka保证的是AP,即可用性和分区容错性。在分布式系统中,数据一致性指的是所有数据备份在同一时刻是否具有相同的值。由于网络通信延迟或中断等原因,Eureka并不能保证强一致性,而是保证了最终一致性。
  2. 可用性(A):Eureka通过服务注册与发现机制,使得服务消费者能够从多个服务提供者中选择一个进行调用,从而保证了服务的可用性。即使部分节点出现故障,Eureka仍然能够通过负载均衡和故障转移机制保证服务的可用性。
  3. 分区容错性(P):由于网络分区是分布式系统中的常见问题,Eureka在设计时必须考虑分区容错性。即使在节点之间通信失败的情况下,Eureka仍然能够保证系统的正常运行。

Eureka在设计和实现中充分考虑了CAP理论,并做出了相应的权衡,所以它是一款AP类型的服务。在实际应用中,需要根据业务需求和系统特点来选择适合的解决方案,以实现最佳的性能和可靠性。

在这里插入图片描述

Eureka实现实时上下线

  • Eureka实现实时上下线的思路主要包括以下几个方面:
  1. 使用Eureka Server的健康检查机制:Eureka Server提供了健康检查机制,可以检测服务提供者的健康状态。当服务提供者的健康状态发生变化时,Eureka Server会自动更新服务注册信息,并通知给其他节点。
  2. 使用Ribbon的缓存机制:Ribbon是Netflix开源的一个客户端负载均衡器,可以与Eureka配合使用。Ribbon自身也具备缓存机制,可以缓存服务注册信息,从而减少对Eureka Server的请求次数。在服务上下线时,Ribbon会从Eureka Server获取最新的服务注册信息,并更新本地缓存。
  3. 监听Eureka的事件:Eureka提供了事件监听机制,可以在服务上下线时触发相应的事件。通过监听这些事件,可以实现实时的服务上下线处理。

Eureka实现实时上下线的思路主要是利用健康检查机制、Ribbon的缓存机制和事件监听机制来实现服务的实时上下线处理。这样可以有效地提高服务的可用性和可靠性,减少系统故障和延迟。

  • Eureka服务注册与下线接口主要包括以下两个:
  1. Eureka Server的REST API:Eureka Server提供了REST API用于管理服务注册与下线。服务提供者可以通过调用POST /eureka/apps/{appName}接口进行服务注册,调用DELETE /eureka/apps/{appName}接口进行服务下线。
  2. Eureka客户端的API:Eureka客户端提供了API用于与服务注册中心进行交互。服务提供者可以使用Eureka客户端的API自动注册服务和注销服务。当服务实例启动时,Eureka客户端会自动向Eureka Server发送注册请求;当服务实例关闭时,Eureka客户端会自动向Eureka Server发送下线请求。

通过以上两个接口,服务提供者可以实现服务的自动注册和下线,从而提高服务的可用性和可靠性。同时,Eureka还提供了负载均衡和故障转移机制,以确保服务的稳定性和可靠性。

  • Eureka自我保护模式

Eureka的自我保护模式是一种应对网络异常的安全保护措施。当Eureka Server在短时间内没有接收到某个微服务实例的心跳时,Eureka Server不会立即将该实例从注册服务列表中剔除,而是进入自我保护模式。在自我保护模式下,Eureka Server会保护服务注册表中的信息,不再删除服务注册表中的数据(即不会注销任何微服务)。当网络故障恢复后,Eureka Server会自动退出自我保护模式。

自我保护模式可以避免因网络问题导致的短暂服务不可用,而盲目注销健康的微服务实例。这种模式使Eureka集群更加健壮、稳定,能够应对网络异常和故障,提高服务的可用性和可靠性。

在这里插入图片描述

Eureka常用注解

Eureka常用的注解包括:

  1. @EnableEurekaClient:开启Eureka客户端功能,使服务能够注册到Eureka Server中,并从Eureka Server获取服务信息。
  2. @EnableDiscoveryClient:开启服务注册与发现功能,使服务能够被其他服务发现和调用。
  3. @EnableEurekaServer:开启Eureka注册中心服务端功能,使得服务能够被其他节点发现和调用。
  4. @VipAddress:标识VIP地址,用于定义集群中的虚拟IP地址,以便将请求转发到集群中的某个节点。
  5. @Register:手动注册服务到Eureka Server中,通常用于自定义服务注册逻辑。
  6. @DiscoveryClient:注入DiscoveryClient实例,用于自定义服务发现的逻辑。

这些注解可以帮助开发者更加方便地实现服务的注册、发现、调用、负载均衡和故障转移等功能。在实际应用中,可以根据需要选择合适的注解,并结合具体的业务场景进行配置和使用。

在这里插入图片描述

Eureka架构模式

Eureka的架构模式主要包括以下几个部分:

  1. Eureka Server:Eureka Server作为服务注册功能的服务器,是服务注册中心。在Eureka架构中,所有的服务都需要注册到Eureka Server,以便服务消费者能够通过Eureka Server找到并调用服务。
  2. Eureka Client:Eureka Client是一个Java客户端,用于简化Eureka Server的交互。所有的服务提供者都会使用Eureka Client连接到Eureka Server,并维持心跳连接。通过Eureka Client,服务提供者可以自动向Eureka Server注册服务,并从Eureka Server获取服务信息。
  3. 注册中心集群:为了提高服务的可用性和可伸缩性,Eureka通常会部署多个节点,形成一个集群。在集群中,各个节点之间会相互通信,共享服务注册信息。这样,即使某个节点出现故障,其他节点仍然可以提供服务。
  4. 负载均衡和故障转移:Eureka会自动进行负载均衡和故障转移。当服务消费者需要调用某个服务时,Eureka Client会从Eureka Server获取可用的服务节点列表,并使用轮询算法进行负载均衡。当某个服务节点出现故障时,Eureka会自动将请求转发到其他可用的节点上。

Eureka的架构模式包括Eureka Server、Eureka Client、注册中心集群、负载均衡和故障转移等部分。这些部分协同工作,使得Eureka能够实现服务的注册、发现、调用、负载均衡和故障转移等功能,提高服务的可用性和可靠性。

在这里插入图片描述


Zookeeper使用详解

Dubbo使用详解

Hazelcast使用详解

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

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

相关文章

一文读懂「RAG,Retrieval-Augmented Generation」检索增强生成

Retrieval-Augmented Generation(RAG)作为机器学习和自然语言处理领域的一大创新,不仅代表了技术的进步,更在实际应用中展示了其惊人的潜力。 RAG结合了检索(Retrieval)和生成(Generation&#…

Flutter 页面嵌入 Android原生 View

前言 文章主要讲解Flutter页面如何使用Android原生View,但用到了Flutter 和 Android原生 相互通信知识,建议先看完这篇讲解通信的文章 Flutter 与 Android原生 相互通信:BasicMessageChannel、MethodChannel、EventChannel-CSDN博客 数据观…

禅道的安装及使用流程

目录 一.安装 1.下载禅道安装包​http://www.zentao.net/ 2.选择禅道开源版 3.选择需要下载的安装包(注意:下载的安装包必须放在根目录,不能移动) 4.将下载的安装包双击进行解压;解压后的文件为d:\xampp&#xff1b…

sfml使用opengl着色器实现2d水面波浪

SFML中使用GLSL着色器来绘制水波。 效果 代码 #include <SFML/Graphics.hpp> #include <iostream>int main() {const int WIDTH = 800;

(南京观海微电子)——TCON介绍

TCON板详细介绍 TCON又称&#xff1a;逻辑板&#xff0c;控制板&#xff0c;在液晶电视里的作用和CRT中的视放板相当&#xff0c;但有本质的区别&#xff0c;逻辑板不是一个纯粹的信号放大器&#xff0c;它输入是LVDS格式信号&#xff0c;而不是RGB。逻辑板的作用是把数字板送来…

python进程间通信——命名管道(Named Pipe、FIFO)

文章目录 Python中的命名管道&#xff1a;深入理解进程间通信1. 命名管道简介2. 创建和删除命名管道3. 写入命名管道4. 读取命名管道5. 示例&#xff1a;进程间通信write_to_pipe.pyread_from_pipe.py测试运行 6. 注意事项和限制命名管道的半双工机制命名管道读写任意一方未打开…

记录一次QT乱码问题

问题描述 在敲陆文周的书《QT5开发及实例》的示例代码时&#xff0c;出现乱码&#xff0c;如下图所示 具体代码如下 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->treeWidget->clear();int groupSize 2;int ite…

Pyro —— Velocity Voxel Scale

Velocity Voxel Scale是H19.5引入的新参数&#xff0c;该参数可单独定义volume和速度体素&#xff1b;根据参数设置&#xff0c;可观察到模拟时间的显著变化&#xff1b; Velocity Voxel Scale对DOP和SOP均可用&#xff1b;对DOP设置&#xff0c;该参数在Smoke Object&#xf…

Docker(四)操作容器

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 操作 Docker 容器 容器是 Docker 又一核心概念。 简单的说&#xff0c;容器是独立运行的一个或一组应用&#xff0c;以及它们的运行态环境…

FreeType和HarfBuzz入门示例

最近在了解字体渲染的一些东西&#xff0c;其中不可避免的需要到这两个库。现在写个入门示例记录一下。 一、FreeType和HarfBuzz介绍 1.1 FreeType FreeType 是一个开源的字体引擎&#xff0c;它提供了一套用于渲染字体的 API。FreeType 支持多种字体格式&#xff0c;包括 True…

Centos使用Docker搭建自己的Gitlab(社区版和设置汉化、修改密码、设置SSH秘钥)

根据我的经验 部署Gitlab&#xff08;社区版&#xff09; 至少需要2核4g的服务器 带宽3~4M 1. 在自己电脑上安装终端&#xff1a;宝塔ssl终端 或者 FinalShell&#xff0c;根据喜好安装即可 http://www.hostbuf.com/t/988.html http://www.hostbuf.com/downloads/finalshell_w…

数字媒体技术基础之:常见的 RGB 色彩空间

所谓“色彩空间” Color Space&#xff0c;是因为可以用 3 个及以上的相互独立的向量将所有色彩构成一个三维空间&#xff0c;以便进行色彩研究与计算。 色彩空间有时候也被称为“色彩模型”。然而它们还是各有侧重&#xff0c;色彩空间侧重于颜色的标识&#xff0c;色彩模型则…

el-upload中的before-upload不生效

我们先来看看官方对before-upload的定义 before-upload是在上传文件时触发&#xff0c;不是添加文件时触发&#xff0c;添加文件时触发 on-change。 所以如果我们要在添加文件时&#xff0c;对文件的大小和后缀等等进行判断&#xff0c;可以用 on-change 方法来实现。 checkSu…

go语言(十一)----面向对象继承

一、面向对象继承 写一个父类 package mainimport "fmt"type Human struct {name stringsex string }func (this *Human) Eat() {fmt.Println("Human.Eat()...") }func (this *Human) Walk() {fmt.Println("Human.Walk()...") }func main() {h…

VisualSVN Server实战

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;下载VisualSVN Server&#xff08;二&#xff09;安装VisualSVN Server&#xff08;三&#xff09;使用VisualSVN Server1、新建仓库&#xff08;1&#xff09;新建Repository&#xff08;2&#xff09;选择仓库类…

高速CAN总线 A C节点竞争总线时 电压分析(共ABC三个节点)

CAN 收发器放大图 ABC三节点框图如下图&#xff1a; 图① 简化过程同<<高速CAN总线 A节点发送 B节点接收 电压分析>> A C节点同时发送显性电平 如下图: 图② A C 节点同时发送显性电平, 则 4 个三极管全部导通, 假定三极管压降0.5V 则电路简化如下图.(导通分析参…

AI日报:扎克伯格瞄准AGI通用人工智能

文章目录 Meta瞄准通用人工智能领域Meta的目标Meta的产品 FAIR移动和装载H100扎克伯格对人工智能竞争对手的真实动机持怀疑态度Meta抛弃了元宇宙吗&#xff1f; Meta瞄准通用人工智能领域 Meta首席执行官马克扎克伯格&#xff08;Mark Zuckerberg&#xff09;在一份可能改变全…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于混合博弈的配电网与多综合能源微网优化运行》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这个标题涉及到配电网和多综合能源微网的优化运行&#xff0c;而优化的方法基于混合博弈理论。让我们逐步解读这个标题的关键部分&#xff1a; 基于混合…

mariadb数据库从入门到精通

mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化 mariadb数据库的安装以及安全初始化一、实验前提二、mariadb数据库的安装三、mariadb数据库安全初始化3.1 设定数据库基本的安全初始化3.2关闭对外开放端口 系列文章目录一、查看数据库二、进入库并且查看…

leetcode下一个更大的元素---1暴力---2单调栈

1.题目&#xff1a; nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。 给你两个 没有重复元素 的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中nums1 是 nums2 的子集。 对于每个 0 < i < nums1.l…