Eureka-第一篇

一、Eureka的概述

Eureka的基本概念和作用

Eureka是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。Eureka是Netflix开发的服务发现框架,主要用于解决在云计算环境中动态位置服务和快速弹性变化的问题。在微服务架构中,Eureka可以作为服务注册与发现组件,使服务之间能够相互通信。

Eureka的作用主要包括以下几点:

1、服务注册与发现: Eureka作为服务注册中心,允许服务实例注册自己的信息,并能够被其他服务查询和发现。这使得服务之间能够动态地相互发现和通信。

2、负载均衡: Eureka提供了负载均衡机制,能够根据服务实例的状态和数量,动态地将请求分配给可用的服务实例。这有助于提高服务的可用性和性能。

3、故障转移: 当某个服务实例出现故障时,Eureka能够自动将其从服务列表中移除,并将请求路由到其他可用的服务实例。这有助于提高服务的可靠性和稳定性。

4、监控和日志管理: Eureka提供了丰富的监控和日志管理功能,能够帮助开发人员和运维人员实时监控服务的状态和性能,以及进行故障排查和日志分析。

Eureka的主要特点

1、易于使用: Eureka提供了简洁的API和友好的用户界面,使得服务的注册、发现和配置变得简单。

2、高可用性: Eureka支持服务注册中心的集群部署,通过相互注册来保证注册中心的高可用性。

3、动态扩展:Eureka支持服务的动态注册和注销,适应服务实例的动态变化。

4、负载均衡: Eureka集成了Ribbon负载均衡器,实现了对多个服务提供者的请求分配,提高了系统的性能和稳定性。

5、健康检查:Eureka注册中心会定期对服务提供者进行健康检查,如果一个服务提供者出现故障,Eureka将其标记为不可用。服务消费者在查询服务列表时可以过滤掉不可用的服务提供者,确保只选择健康的服务。

6、故障转移: 在Eureka平台中,如果某台服务器宕机,客户端请求会自动切换到新的Eureka节点。当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理中。

7、客户端缓存功能:Eureka还有客户端缓存功能,即使Eureka集群中所有节点都失效,或者发生网络分割故障导致客户端不能访问任何一台Eureka服务器,Eureka服务的消费者仍然可以通过Eureka客户端缓存来获取现有的服务注册信息。

总的来说,Eureka主要特点体现在服务的动态注册与发现、负载均衡、健康检查、故障转移和客户端缓存等方面,这使得Eureka成为构建微服务架构的可靠基础设施。

Eureka在微服务架构中的地位和作用

Eureka在微服务架构中扮演着核心的角色,负责服务的注册与发现。其主要作用和地位如下:

1、中心枢纽: Eureka作为中心服务注册与发现组件,使得其他微服务能够相互发现和通信。其他组件和服务都依赖Eureka来获取其他服务的地址信息,然后根据项目需求实现自己的业务。

2、服务治理: Eureka负责管理服务的注册与发现,使得服务可以动态地加入或离开。这有助于实现服务的动态管理和快速弹性变化,提高了服务的可用性和可靠性。

3、负载均衡和故障转移: Eureka集成了负载均衡和故障转移机制。它可以根据服务实例的状态和数量,动态地将请求分配给可用的服务实例,并在某个实例出现故障时自动进行故障转移。

二、Eureka的工作原理

Eureka的注册与发现机制

Eureka的注册与发现机制主要基于以下步骤:

1、服务注册: 当一个服务启动时,Eureka客户端会向Eureka Server发送注册请求,将自己的信息注册到Eureka Server上。这些信息包括服务实例的IP地址、端口号、应用名称、实例ID等信息。Eureka Server接收到注册信息后,会将该服务实例的信息存储在内存中,并定期向其他Eureka Server节点发送心跳,保持信息的同步。

2、服务发现: 当一个服务消费者需要调用其他服务时,它会向Eureka Server发送一个服务发现请求。Eureka Server会返回已注册的服务实例列表,消费者可以根据返回的列表来获取目标服务的地址信息。为了实现负载均衡,Eureka Server提供了多种负载均衡策略,如轮询、随机等。

3、服务更新与注销: 当服务实例的状态发生变化时,Eureka客户端会向Eureka Server发送更新请求,更新服务实例的状态信息。如果服务实例需要下线或注销,Eureka客户端会向Eureka Server发送注销请求,将该服务实例从注册表中删除。

4、健康检查: Eureka Server会定期对服务实例进行健康检查,检查其是否正常运行。如果某个服务实例出现故障或异常,Eureka Server会自动将其从服务列表中移除,保证服务的可用性。

5、客户端缓存: 为了提高性能和可用性,Eureka客户端会缓存服务实例的信息。即使在Eureka Server节点宕机或网络分割的情况下,服务消费者仍然可以通过缓存来获取现有的服务注册信息。

通过以上机制,Eureka实现了服务的动态注册与发现,使得微服务架构中的服务之间能够动态地相互发现和通信,提高了服务的可用性、可靠性和性能。

Eureka的注册与发现机制主要通过Eureka Server和Eureka Client来实现。以下是一个简单的代码实现例子:

首先,我们需要创建一个Eureka Server:

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.cloud.netflix.eureka.server.EnableEurekaserver;  @EnableEurekaserver  
@SpringBootApplication  
public class EurekaServerApplication {  public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);  }  }

然后,我们需要创建一个Eureka Client,用于注册和发现服务:

import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.SpringBootApplication;  import org.springframework.cloud.netflix.eureka.EnableEurekas;  import org.springframework.cloud.netflix.eureka.server.EnableEurekaserver;  @EnableEurekas  
@SpringBootApplication  
public class EurekaClientApplication {  public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);  }  }

在application.yml或application.properties文件中,你需要配置Eureka Server的地址:

yml

eureka:  instance:  hostname: localhost  client:  registerWithEureka: true  fetchRegistry: true  serviceUrl: http://localhost:60001/eureka/
Eureka的服务实例状态管理

Eureka的服务实例状态管理主要包括以下几个方面:

1、正常状态: 服务实例正常运行,能够正常处理请求。在Eureka中,服务实例的状态由Eureka Server进行监控和记录。当服务实例处于正常状态时,Eureka Server会定期向该实例发送心跳包,以保持其注册信息的有效性。

2、下线状态: 服务实例由于某种原因无法正常提供服务,需要从服务列表中移除。当服务实例处于下线状态时,Eureka Server会将其从服务列表中剔除,以保证服务的高可用性。服务实例的下线状态可以通过Eureka Server的管理界面进行手动设置。

3、离线状态: 与下线状态类似,服务实例处于离线状态时也无法正常提供服务。离线状态通常用于在服务实例短暂不可用时,暂时将其从服务列表中移除。与下线状态不同的是,离线状态的实例在恢复正常后,可以自动重新注册到Eureka Server。

4、禁用状态: 服务实例被禁用,无法接受任何请求。禁用状态通常用于在维护或升级期间暂时停止服务。在禁用状态下,Eureka Server会保留服务实例的注册信息,但不会向其发送心跳包。

通过以上状态管理机制,Eureka能够有效地监控和管理服务实例的状态,保证服务的可用性和可靠性。同时,Eureka还提供了丰富的API和监控界面,方便管理员对服务实例的状态进行管理和监控。

Eureka的安全和认证机制

Eureka的安全和认证机制主要是通过设置用户名和密码来实现的。具体步骤如下:

在Eureka Server中导入Security依赖,如Spring Security依赖。

在Eureka Server的配置文件中添加安全认证相关的配置,包括用户名和密码。例如,可以在application.yml或application.properties文件中添加如下配置:

spring:  security:  user:  name: ldzg  password: 123456

在Eureka Client的配置文件中设置与Eureka Server相同的用户名和密码,以进行安全认证。例如,在application.yml或application.properties文件中添加如下配置:

yml

eureka:  client:  username: ldzg  password: 123456

重启Eureka Server和Eureka Client,启动后Eureka Client会自动使用设置的用户名和密码向Eureka Server进行安全认证。如果认证失败,Eureka Client将无法注册到Eureka Server。

完成安全认证后,Eureka Client就可以正常地注册到Eureka Server,并与其他服务进行交互。

通过以上步骤,可以确保只有通过安全认证的服务才能注册到Eureka Server,提高了服务的可用性和安全性。

三、Eureka的实操

单机版无安全检验方式

架构图

在这里插入图片描述

1、Eureka-server

代码

package com.ldzg;import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;import java.net.InetAddress;
import java.net.UnknownHostException;@Slf4j
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {public static void main(String[] args) throws UnknownHostException {ConfigurableApplicationContext application = SpringApplication.run(EurekaServerApplication.class, args);Environment env = application.getEnvironment();String ip = InetAddress.getLocalHost().getHostAddress();String port = env.getProperty("server.port");String path ="";// env.getProperty("server.servlet.context-path");log.info("\n----------------------------------------------------------\n\t" +"Application Eureka is running! Access URLs:\n\t" +"Local: \t\thttp://localhost:" + port + path + "/\n\t" +"External: \thttp://" + ip + ":" + port + path + "/\n\t" +"swagger-ui: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" +"Doc: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" +"----------------------------------------------------------");}}

pom.xml文件

<?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.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud-learning</artifactId><groupId>com.ldzg</groupId><version>1.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>eureka-server1</artifactId><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-security</artifactId>-->
<!--        </dependency>--></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.yml配置文件说明

server:port: 60001 #指定运行端口
spring:application:name: eureka-server #指定服务名称
eureka:instance:hostname: localhost #指定主机地址client:fetch-registry: false #指定是否要从注册中心获取服务(注册中心不需要开启)register-with-eureka: false #指定是否要注册到注册中心(注册中心不需要开启)service-url: #eureka的地址信息defaultZone: http://localhost:60001/eurekaserver:enable-self-preservation: false #关闭保护模式

运行结果:
在这里插入图片描述

2、springcloud-consumer

java代码

package com.ldzg;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class EurekaClientApplication {public static void main(String[] args) {SpringApplication.run(EurekaClientApplication.class, args);}}

pom.xml文件

<?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.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud-learning</artifactId><groupId>com.ldzg</groupId><version>1.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>eureka-client</artifactId><version>0.0.1-SNAPSHOT</version><name>eureka-client</name><description> Spring cloud</description><!--    <dependencies>-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-security</artifactId>-->
<!--        </dependency>-->
<!--    </dependencies>--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.yml配置文件说明

server:port: 60002 #运行端口号
spring:application:name: eureka-client #服务名称
eureka:client:register-with-eureka: true #注册到Eureka的注册中心fetch-registry: true #获取注册实例列表service-url:defaultZone: http://localhost:60001/eureka/ #配置注册中心地址

3、springcloud-provider

java代码

  • Controller
package com.ldzg.controller;import com.ldzg.ov.CommonResult;
import com.ldzg.ov.User;
import com.ldzg.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;/*** Created by ldzg on 2024/1/18.*/
@RestController
@RequestMapping("/ldzguser")
public class UserFeignController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public CommonResult getUser(@PathVariable Long id) {return userService.ldzg_getUser(id);}@GetMapping("/getByUsername")public CommonResult getByUsername(@RequestParam String username) {return userService.ldzg_getByUsername(username);}@PostMapping("/create")public CommonResult create(@RequestBody User user) {return userService.ldzg_create(user);}@PostMapping("/update")public CommonResult update(@RequestBody User user) {return userService.ldzg_update(user);}}
  • Service
package com.ldzg.service.impl;import com.ldzg.ov.CommonResult;
import com.ldzg.ov.User;
import com.ldzg.service.UserService;
import org.springframework.stereotype.Component;/*** Created by ldzg on 2024/1/18.*/
@Component
public class UserFallbackService implements UserService {@Overridepublic CommonResult ldzg_create(User user) {User defaultUser = new User(-1L, "ldzg", "123456");return new CommonResult<>(defaultUser);}@Overridepublic CommonResult<User> ldzg_getUser(Long id) {User defaultUser = new User(-1L, "ldzg", "123456");return new CommonResult<>(defaultUser);}@Overridepublic CommonResult<User> ldzg_getByUsername(String username) {User defaultUser = new User(-1L, "ldzg", "123456");return new CommonResult<>(defaultUser);}@Overridepublic CommonResult ldzg_update(User user) {return new CommonResult("调用失败",500);}}

pom.xml文件

<?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.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud-learning</artifactId><groupId>com.ldzg</groupId><version>1.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springcloud-provider</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

application.yml配置文件说明

server:port: 60005
spring:application:name: consumer
eureka:client:register-with-eureka: true #注册到Eureka的注册中心fetch-registry: true #获取注册实例列表service-url:defaultZone: http://localhost:60001/eureka/ #配置注册中心地址
feign:hystrix:enabled: true #开启Hystrix
logging:level:com.macro.cloud.service.UserService: debug

运行结果
在这里插入图片描述

第一篇先讲到这里,下一期讲第二篇关于Eureka的高可用与安全连接模式

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

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

相关文章

[docker] Docker镜像的创建以及Dockerfile的使用

一、Dokcer镜像的创建 创建镜像有三种方法&#xff0c;分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。 1.1 基于现有镜像创建 &#xff08;1&#xff09;首先启动一个镜像&#xff0c;在容器里做修改docker run -it --name web centos:7 /bin/bash …

【C++】介绍STL中list容器的常用接口

目录 一、STL中的list简介 二、构造函数 2.1 默认构造函数 2.2 填充构造&#xff08;用n个相同的值构造&#xff09; 2.3 迭代器构造 2.4 拷贝构造和赋值运算符重载 三、迭代器 3.1 正向迭代器 3.2 反向迭代器 四、容量相关 4.1 获取list中有效数据的个数 4.2 判…

android camera的使用以及输出的图像格式

一、Camera 1.1、结合SurfaceView实现预览 1.1.1、布局 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-au…

burp靶场--CSRF

burp靶场–CSRF https://portswigger.net/web-security/csrf#what-is-csrf ### 什么是 CSRF&#xff1f; 跨站请求伪造&#xff08;也称为 CSRF&#xff09;是一种 Web 安全漏洞&#xff0c;允许攻击者诱导用户执行他们不打算执行的操作。它允许攻击者部分规避同源策略&#…

Unity 解决异步分发方案

很多程序&#xff0c;包括游戏、小程序、一些AR、VR的程序&#xff0c;因为客户端体量太大&#xff0c;更新频繁都涉及到远程热更新的问题&#xff0c;解决这类问题的思路基本上是客户端解决主要功能&#xff0c;资源类放置在服务器。 下面记录下&#xff1a; 1.CDN或者云轻量…

Windows11操作系统百科

简介 Windows 11是由微软公司&#xff08;Microsoft&#xff09;开发的操作系统&#xff0c;应用于计算机和平板电脑等设备 [1]。于2021年6月24日发布 [3]&#xff0c;2021年10月5日发行 [29]。 Windows 11提供了许多创新功能&#xff0c;增加了新版开始菜单和输入逻辑等 [6]…

安装ddddocr中遇到的问题

1、需要先安装&#xff1a; pip3 install pyinstaller --no-use-pep517 pip install scikit-build pip install setuptools pip install pyinstaller pip install pillow 重要是的是保证一个python 环境&#xff0c;多个python环境会导致各种问题。并且保证python>3.8…

安装宝塔面板后k8s所在节点pod无法正常工作解决方法,kubernetes k8s 与宝塔面板冲突解决方法

在实际项目过程中我们使用了k8s 在生产环境中运行管理服务。 但是对服务器的状态管理我们使用了宝塔面板进行 K8s 版本1.2.8 宝塔面板 版本 8.05 操作步骤是这样的。 1.完成1.2.8 k8s的节点安装&#xff0c;并正常运行服务。 过程略 2.安装宝塔面板 ​ yum install -y …

基于springboot留守儿童爱心网站源码和论文

随着留守儿童爱心管理的不断发展&#xff0c;留守儿童爱心网站在现实生活中的使用和普及&#xff0c;留守儿童爱心管理成为近年内出现的一个热门话题&#xff0c;并且能够成为大众广为认可和接受的行为和选择。设计留守儿童爱心网站的目的就是借助计算机让复杂的管理操作变简单…

Docker的Cgroup资源限制

目录 前瞻 CPU 资源控制 设置CPU使用率上限 设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09; 设置容器绑定指定的CPU 内存资源限制 对磁盘IO配额控制&#xff08;blkio&#xff09;的限制 前瞻 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c…

让抖音引流到微信小程序的三方工具数灵通

抖音作为一款火爆的短视频社交平台&#xff0c;吸引了数亿用户的关注和喜爱。除了观看和制作视频外&#xff0c;抖音还提供了跳转到小程序的功能&#xff0c;让用户可以享受更多功能和乐趣。那么&#xff0c;如何在抖音中跳转到小程序呢&#xff1f;以下是详细解答&#xff1a;…

SpringBoot使用druid

SpringBoot使用druid 一、前言二、配置1、pom依赖2、配置文件yml3、配置类 一、前言 Java程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现&#xff0c;结合了 C…

leetcode:排序链表(递归)

题目&#xff1a; 给定链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5]示例…

【华为 ICT HCIA eNSP 习题汇总】——题目集8

1、在VRP平台下&#xff0c;关于各个协议的外部优先级的描述&#xff0c;正确的是&#xff08;&#xff09;。 A、OSPF路由的外部优先级是15 B、IS-IS路由的外部优先级是10 C、静态路由的外部优先级是60 D、BGP路由的外部优先级是20 考点&#xff1a;路由技术原理 解析&#xf…

钉钉企业机器人单聊消息发送实践-大数据平台(XSailboat)消息中心消息推送

1. 背景 在笔者开发的大数据平台XSailboat中有 消息中心 模块&#xff0c;用来全平台的消息收集&#xff0c;整理分拆、订阅发送等功能。消息推送方式支持钉钉群聊、钉钉单聊、短信通知。现记录一下企业机器人消息单聊推送的实现过程。 2. 钉钉开发文档 这是官方的开发文档地…

MyBatis中一级缓存是什么?SqlSession一级缓存失效的原因?如何理解一级缓存?

一级缓存是SqlSession级别的&#xff0c;通过同一个SqlSession查询的数据会被缓存&#xff0c;下次查询相同的数据&#xff0c;就 会从缓存中直接获取&#xff0c;不会从数据库重新访问 使一级缓存失效的四种情况&#xff1a; 1) 不同的SqlSession对应不同的一级缓存 2) 同一…

好书推荐丨豆瓣评出9.2高分!Python编程入门就看蟒蛇书

目录 写在前面 内容简介 业内专家推荐 编辑推荐 资源丰富 作者介绍 Q&A 粉丝福利 写在后面 写在前面 在这日新月异的科技新时代&#xff0c;编程如同一把万能钥匙&#xff0c;为无数人打开了通向无限可能的大门。而在众多编程语言中&#xff0c;Python无疑是最耀…

etcd未授权到控制k8s集群

在安装完 K8s 后&#xff0c;默认会安装 etcd 组件&#xff0c;etcd 是一个高可用的 key-value 数据库&#xff0c;它为 k8s 集群提供底层数据存储&#xff0c;保存了整个集群的状态。大多数情形下&#xff0c;数据库中的内容没有加密&#xff0c;因此如果黑客拿下 etcd&#x…

防御课程—华为USG6000V1的配置实验(一)

实验拓扑&#xff1a; 实验分析 由实验拓扑图需求分析可知我们在生产区和办公区需要用到子接口技术 实验配置 在Cloud1上配置 在DMZ区域配置 在server1上配置在server2上配置在防火墙上进行的配置 由实验拓扑图可知防火墙与DMZ区域相连的接口为GigabitEthernet1/0/0接口 …

Pandas.Series.median() 中位数 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.2.0 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 传送门&#xff1a; Pandas API参考目录 传送门&#xff1a; Pandas 版本更新及新特性 传送门&…