001 SpringCloudAlibaba整合 - Nacos注册配置中心、Sentinel流控、Zipkin链路追踪、Admin监控

SpringCloudAlibaba

文章目录

  • SpringCloudAlibaba
    • 1.版本依赖关系
        • 2022.x 分支
        • 2021.x 分支
        • 2.2.x 分支
      • 组件版本关系
    • 2.基础项目构建
      • 1.引入全局pom文件
      • 2.创建对应的模块
    • 3.SpringBootAdmin监控服务整合
      • 1.cloud-admin服务搭建
        • 1.导入服务端依赖
        • 2.主启动类添加`@EnableAdminServer`注解启用监控
      • 2.客户端配置
        • 1.引入客户端和端点监控依赖
        • 2.配置yml
      • 3.启动测试
    • 4.Nacos注册中心、配置中心整合
      • 1.下载、安装
        • 修改启动模式
        • 创建命名空间
      • 2.注册中心整合
        • 1.引入pom服务注册发现依赖
        • 2.yml配置
        • 3.主启动类添加`@EnableDiscoveryClient`注解
        • 4.启动测试
      • 3.配置中心整合
        • 1.引入pom依赖
        • 2.yml配置
        • 3.配置nacos数据库连接
        • 4.配置中心创建yml文件
    • 5.Gateway网关整合
      • 1.添加pom依赖
      • 2.配置跨域
      • 3.yml路由配置
    • 6.Sentinel流控整合
      • 1.下载、安装
      • 2.整合
        • 1.引入pom依赖
        • 2.yml配置
        • 3.启动测试
    • 7.Sleuth、Zipkin 链路追踪整合
      • 1.下载、安装
      • 2.整合
        • 1.引入pom依赖
        • 2.配置yml
        • 3.启动测试

1.版本依赖关系

官方地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

由于 Spring Boot 3.0,Spring Boot 2.7~2.4 和 2.4 以下版本之间变化较大,目前企业级客户老项目相关 Spring Boot 版本仍停留在 Spring Boot 2.4 以下,为了同时满足存量用户和新用户不同需求,社区以 Spring Boot 3.0 和 2.4 分别为分界线,同时维护 2022.x、2021.x、2.2.x 三个分支迭代。如果不想跨分支升级,如需使用新特性,请升级为对应分支的新版本。

2022.x 分支

适配 Spring Boot 3.0,Spring Cloud 2022.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记): (注意,该分支 Spring Cloud Alibaba 版本命名方式进行了调整,未来将对应 Spring Cloud 版本,前三位为 Spring Cloud 版本,最后一位为扩展版本,比如适配 Spring Cloud 2022.0.0 版本对应的 Spring Cloud Alibaba 第一个版本为:2022.0.0.0,第个二版本为:2022.0.0.1,依此类推)

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2022.0.0.0*Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC2Spring Cloud 2022.0.03.0.2
2022.0.0.0-RC1Spring Cloud 2022.0.03.0.0
2021.x 分支

适配 Spring Boot 2.4,Spring Cloud 2021.x 版本及以上的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2021.0.5.0*Spring Cloud 2021.0.52.6.13
2021.0.4.0Spring Cloud 2021.0.42.6.11
2021.0.1.0Spring Cloud 2021.0.12.6.3
2021.1Spring Cloud 2020.0.12.4.2
2.2.x 分支

适配 Spring Boot 为 2.4,Spring Cloud Hoxton 版本及以下的 Spring Cloud Alibaba 版本按从新到旧排列如下表(最新版本用*标记):

Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version
2.2.10-RC1*Spring Cloud Hoxton.SR122.3.12.RELEASE
2.2.9.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.8.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE
2.2.6.RELEASESpring Cloud Hoxton.SR92.3.2.RELEASE
2.2.1.RELEASESpring Cloud Hoxton.SR32.2.5.RELEASE
2.2.0.RELEASESpring Cloud Hoxton.RELEASE2.2.X.RELEASE
2.1.4.RELEASESpring Cloud Greenwich.SR62.1.13.RELEASE
2.1.2.RELEASESpring Cloud Greenwich2.1.X.RELEASE
2.0.4.RELEASE(停止维护,建议升级)Spring Cloud Finchley2.0.X.RELEASE
1.5.1.RELEASE(停止维护,建议升级)Spring Cloud Edgware1.5.X.RELEASE

组件版本关系

每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本如下表所示(注意,Spring Cloud Dubbo 从 2021.0.1.0 起已被移除出主干,不再随主干演进):

Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
2022.0.0.01.8.62.2.14.9.4~1.7.0
2022.0.0.0-RC21.8.62.2.14.9.4~1.7.0-native-rc2
2021.0.5.01.8.62.2.04.9.4~1.6.1
2.2.10-RC11.8.62.2.04.9.4~1.6.1
2022.0.0.0-RC11.8.62.2.1-RC4.9.4~1.6.1
2.2.9.RELEASE1.8.52.1.04.9.4~1.5.2
2021.0.4.01.8.52.0.44.9.4~1.5.2
2.2.8.RELEASE1.8.42.1.04.9.3~1.5.1
2021.0.1.01.8.31.4.24.9.2~1.4.2
2.2.7.RELEASE1.8.12.0.34.6.12.7.131.3.0
2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
2.2.3.RELEASE or 2.1.3.RELEASE or 2.0.3.RELEASE1.8.01.3.34.4.02.7.81.3.0
2.2.1.RELEASE or 2.1.2.RELEASE or 2.0.2.RELEASE1.7.11.2.14.4.02.7.61.2.0
2.2.0.RELEASE1.7.11.1.44.4.02.7.4.11.0.0
2.1.1.RELEASE or 2.0.1.RELEASE or 1.5.1.RELEASE1.7.01.1.44.4.02.7.30.9.0
2.1.0.RELEASE or 2.0.0.RELEASE or 1.5.0.RELEASE1.6.31.1.14.4.02.7.30.7.1

2.基础项目构建

1.引入全局pom文件

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version><relativePath/></parent><groupId>com.li</groupId><artifactId>spring-cloud-alibaba-parent</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>cloud-common</module><module>cloud-picture</module><module>cloud-login</module><module>cloud-gateway</module><module>cloud-data-clean</module><module>cloud-data-production</module><module>cloud-admin</module><module>cloud-auth</module></modules><dependencies><!--由于2021版本去除了-bootstrap.yml支持、所以我们要加上去--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.6.11</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.4</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.4.0</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!--maven插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 取消查找本项目下的Main方法:为了解决Unable to find main class的问题 --><mainClass>none</mainClass><!-- 为了解决依赖模块找不到此模块中的类或属性 --><classifier>execute</classifier> </configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

2.创建对应的模块

目前创建了这些,测试用

        <module>cloud-common</module> <!--公共模块--><module>cloud-picture</module><!--图片模块--><module>cloud-login</module><!--登录模块--><module>cloud-gateway</module><!--网关模块--><module>cloud-data-clean</module><module>cloud-data-production</module><module>cloud-admin</module> <!--监控模块--><module>cloud-auth</module><!--认证模块-->

创建启动类和yml配置文件,微服务项目yml文件名建议使用bootstrap.yml,加载优先级大于application

配置各个模块yml

server:port: 10000
spring:profiles:active: devapplication:name: cloud-admin#信息断点
info:tags:environment: cloud-admin
#日志收集
logging:file:name: ./log/admin-application.logpattern:file: '%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx'

引入各模块基础公共依赖

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><!--开启自定义 配置 需要提示功能--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

3.SpringBootAdmin监控服务整合

1.cloud-admin服务搭建

1.导入服务端依赖
       <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId></dependency>
2.主启动类添加@EnableAdminServer注解启用监控

2.客户端配置

1.引入客户端和端点监控依赖
        <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
2.配置yml
spring:boot:admin:client:# Admin Server的URL,若是要注册到多个admin服务端上,用逗号分隔就可以# url: http://localhost:8080,http://localhost:8081url: http://127.0.0.1:10000instance:# 使用IP的方式prefer-ip: true#按实例显示标签metadata:tags:environment: cloud-authmanagement:endpoint:health:show-details: always  # 显示health指标的详细信息,否则只会显示 status#暴露所有端点,生产环境不建议endpoints:web:exposure:include: ["*"]                 

3.启动测试

访问服务端:http://localhost:10000/applications/cloud-admin

4.Nacos注册中心、配置中心整合

1.下载、安装

官方文档及下载地址:https://nacos.io/download/nacos-server/?spm=5238cd80.2ef5001f.0.0.3f613b7ctaHA8j

下载完后解压

修改启动模式

如果直接启动则默认是集群方式启动会报错,需进入binstartup.cmd配置文件修改modestandalone,单结点启动

保存后双击启动即可

访问 http://localhost:8848/nacos/ ,用户名密码默认nacos,默认端口号8848

创建命名空间

点击创建即可

2.注册中心整合

1.引入pom服务注册发现依赖

对需要注册的服务模块引入

       <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
2.yml配置
spring:cloud:nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848#命名空间id,不配置默认为public# namespace: 5bd397d3-505f-44f5-95fa-a62e631b9b41
3.主启动类添加@EnableDiscoveryClient注解
4.启动测试

如果配置了命名空间则需要切换对应的空间

3.配置中心整合

1.引入pom依赖
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency>
2.yml配置
spring:cloud:nacos:config:# 配置中心地址server-addr: 127.0.0.1:8848# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}#命名空间配置namespace: 5bd397d3-505f-44f5-95fa-a62e631b9b41#组配置#group: dev
3.配置nacos数据库连接

进入nacos目录下conf下的application.properties文件进行编辑

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql### Count of DB:
db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://xxx:3306/xxx?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user.0=rootdb.password.0=xxx### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2

数据库执行该sql文件,重启

4.配置中心创建yml文件

注意:

1.文件名必须带.yml

2.组配置可以不给,默认default_group,如果给了则需要配置group

3.后缀名根据spring的profiles的active切换

例如:有配置中心有四个文件配置,本地dev和prod配置相同

cloud-admin-dev.yml 组配置dev 配置 test:1

cloud-admin-prod.yml 组配置dev 配置 test:2

cloud-admin-prod.yml 组配置prod 配置 test:3

cloud-admin-dev.yml 组配置prod 配置 test:4

测试结果:

本地yml组配置本地spring.profiles.active配置获取test结果
devdev1
devprod2
prodprod3
proddev4

5.Gateway网关整合

1.添加pom依赖

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

注意:由于网关已经包含了spring-boot-starter-web依赖,如果重复引入需排除掉

2.配置跨域

@Configuration
public class ApiCorsConfiguration {@Beanpublic CorsWebFilter corsWebFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();//1、配置跨域corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.addAllowedOrigin("*");corsConfiguration.setAllowCredentials(true);source.registerCorsConfiguration("/**", corsConfiguration);return new CorsWebFilter(source);}
}

3.yml路由配置

spring:cloud:gateway:#路由配置:转发规则routes:# id:唯一标识。默认是一个UUID# uri:转发路径# predicates:条件,用于请求网关路径的匹配规则- id: test_routeuri: https://www.baidu.compredicates:- Query=url,baidu- id: picture_routeuri: lb://cloud-picturepredicates:- Path=/api/picture/**,/hellofilters:- RewritePath=/api/(?<segment>.*),/$\{segment}- id: login_routeuri: lb://cloud-loginpredicates:- Path=/api/login/**filters:- RewritePath=/api/(?<segment>.*),/$\{segment}- id: gateway-routeuri: lb://cloud-gatewaypredicates:- Path=/api/gateway/**filters:- RewritePath=/api/(?<segment>.*),/$\{segment}- id: admin-routeuri: lb://cloud-adminpredicates:- Path=/api/admin/**filters:- RewritePath=/api/(?<segment>.*),/$\{segment}- id: production-routeuri: lb://cloud-productionpredicates:- Path=/api/production/**filters:- RewritePath=/api/(?<segment>.*),/$\{segment}

详细配置可参考另一篇文章: SpringCloudNetflix - Feign 调用、Hystix 熔断和 Gateway 网关

https://blog.csdn.net/weixin_54158370/article/details/125165136

6.Sentinel流控整合

1.下载、安装

下载地址:https://github.com/alibaba/Sentinel/tags

本地使用版本1.8.5

下载后通过java -jar启动,输入http://localhost:8080/访问,默认账号密码sentinel

2.整合

1.引入pom依赖
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
2.yml配置
spring: cloud:#监控限流sentinel:# 是否初始化时就全部加载 默认关闭,如果关闭启动时候可能会看不到服务eager: truetransport:#通信端口 假如被占用了会自动从8719开始依次+1扫描。直至找到未被占用的端口,默认8719port: 8719 #客户端地址,默认8080dashboard: 127.0.0.1:8080 
3.启动测试

7.Sleuth、Zipkin 链路追踪整合

1.下载、安装

下载地址:https://repo1.maven.org/maven2/io/zipkin/zipkin-server/

1.安装启动zipkin java -jar zipkin.jar

2.访问zipkin web界面。http://localhost:9411/

2.整合

1.引入pom依赖
  <!--sleuth-zipkin--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId></dependency>

(zipkin中已经依赖了sleuth,所以可以不导)

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId></dependency>
2.配置yml
spring:sleuth:web:client:# 开启采集链路enabled: truesampler:# 默认采集是 0.1(百分之十),生产环境采用默认,测试环境可以修改为1.0probability: 1.0# zipkin服务所在地址zipkin:base-url: http://127.0.0.1:9411/discovery-client-enabled: false #让nacos把它当成一个URL,而不要当做服务名
3.启动测试

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

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

相关文章

常用的网络安全设备

一、 WAF 应用防火墙 范围&#xff1a;应用层防护软件 作用&#xff1a; 通过特征提取和分块检索技术进行模式匹配来达到过滤&#xff0c;分析&#xff0c;校验网络请求包的目的&#xff0c;在保证正常网络应用功能的同时&#xff0c;隔绝或者阻断无效或者非法的攻击请求 可…

Jenkins 新建配置Pipeline任务 三

Jenkins 新建配置Pipeline任务 三 一. 登录 Jenkins 网页输入 http://localhost:8080 输入账号、密码登录 一个没有创建任务的空 Jenkins 二. 创建 任务 图 NewItem 界面左上角 New Item 图NewItemSelect 1.Enter an item name&#xff1a;输入任务名 2.Select an ite…

如何构建有效的人工智能代理

目录 什么是 AI 代理? 何时应使用 AI 代理? 人工智能代理的构建模块 构建 AI 代理的常用方法 1. 提示链接(分步说明) 2.路由(将任务发送到正确的地方) 3.并行处理(同时做多件事) 4. 协调者和工作者 AI(团队合作) 5. 评估器和优化器(修复错误) 如何让人工…

linux 下连接mysql(下)

case 表达式 表t1中的数据如下。 select * from t1; ---------------------------- | id | student_no | name | age | ---------------------------- | 3 | 202501 | ll | 10 | | 4 | 202502 | tt | 15 | ----------------------------如果学号是202501,…

hivemetastore 连接过多导致sql查询慢

MetaStore (DB)修改对应的处理连接数maxConnectionsPerPartition建议设置成 100 (不能超过最大值300)&#xff0c;重启Hive服务。 建议值100是根据与工行规模相当集群的设置作参考&#xff0c;尽量大满足连接数请求的同时考虑connection占用资源(如果connection太多会占用太多的…

sqli-labs布尔盲注

通过?id1及?id1判断是否存在sql注入的漏洞 ?id1有回显 ?id1无回显 再使用?id1 and 11 --及?id1 and 12 --判断是否为布尔盲注 ?id1 and 11 --有回显 ?id1 and 12 --无回显 为布尔盲注&#xff0c;使用python获取其中的库名&#xff0c;表名&#xff0c;列名及数据 1…

ovs源码分析

源码版本 ovs 内核部分的代码在linux内核的 /net/openswitch目录下&#xff0c;应用层控制面代码在ovs项目中。 Linux kernel: version 6.2.0 Ovs: v3.4.1 总体架构 整体结构图 ovs的架构如下图所示&#xff0c;主要由内核datapath、vswitchd、ovsdb以及用户空间的ovs-vs…

vue3实战-----使用mock模拟接口数据

vue3实战-----使用mock模拟接口数据 1.安装和配置2.创建mock数据3.使用axios测试 1.安装和配置 安装依赖:https://www.npmjs.com/package/vite-plugin-mock pnpm install -D vite-plugin-mock mockjs在 vite.config.js 配置文件启用插件: import { viteMockServe } from vit…

DeepSeek+Excel 效率翻倍

2025年初&#xff0c;DeepSeek以惊人的效率突破技术壁垒&#xff0c;用极低的成本实现了与行业顶尖AI相媲美的性能&#xff0c;瞬间成为全球科技领域的热门话题。 那么AI工具的普及将如何改变我们的工作方式&#xff1f;Excel会被取代吗&#xff1f; 今天&#xff0c;珠珠带你…

Rhel Centos环境开关机自动脚本

Rhel Centos环境开关机自动脚本 1. 业务需求2. 解决方法2.1 rc.local2.2 rc.d2.3 systemd2.4 systemd附着的方法2.5 tuned 3. 测试 1. 业务需求 一台较老的服务器上面业务比较简单,提供一个简单的网站,但已经没有业务的运维人员. 想达到的效果: 由于是非标准的apache或者nginx…

pyside6 中信号有的地方用connect有的用emit为什么

在 PySide6 的 Qt 框架中&#xff0c;connect 和 emit 是信号与槽机制的两个核心操作&#xff0c;但它们的作用完全不同&#xff1a; 1. connect()&#xff1a;建立信号与槽的绑定 作用&#xff1a;将某个信号&#xff08;Signal&#xff09;与一个槽函数&#xff08;Slot&…

React历代主要更新

一、React 16之前更新 React Fiber是16版本之后的一种更新机制&#xff0c;使用链表取代了树&#xff0c;是一种fiber数据结构&#xff0c;其有三个指针&#xff0c;分别指向了父节点、子节点、兄弟节点&#xff0c;当中断的时候会记录下当前的节点&#xff0c;然后继续更新&a…

使用 EDOT 监测由 OpenAI 提供支持的 Python、Node.js 和 Java 应用程序

作者&#xff1a;来自 Elastic Adrian Cole Elastic 很自豪地在我们的 Python、Node.js 和 Java EDOT SDK 中引入了 OpenAI 支持。它们为使用 OpenAI 兼容服务的应用程序添加日志、指标和跟踪&#xff0c;而无需任何代码更改。 介绍 去年&#xff0c;我们宣布了 OpenTelemetry…

RabbitMQ使用guest登录提示:User can only log in via localhost

guest用户默认是无法使用远程访问的&#xff0c;生产环境建议直接在对应服务器登录使用。 1、通过创建新增用户并赋予权限实现远程登录 添加新用户 rabbitmqctl add_user zjp zjp 设置管理员 rabbitmqctl set_user_tags zjp administrator 设置新用户的权限 rabbitmqctl…

Eclipse JSP/Servlet 深入解析

Eclipse JSP/Servlet 深入解析 引言 随着互联网的快速发展,Java Web开发技术逐渐成为企业级应用开发的主流。在Java Web开发中,JSP(JavaServer Pages)和Servlet是两个核心组件,它们共同构成了Java Web应用程序的基础。本文将深入解析Eclipse平台下的JSP/Servlet技术,帮…

【Uniapp】关于实现下拉刷新的三种方式

在小程序、h5等地方中&#xff0c;常常会用到下拉刷新这个功能&#xff0c;今天来讲解实现这个功能的三种方式&#xff1a;全局下拉刷新&#xff0c;组件局部下拉刷新&#xff0c;嵌套组件下拉刷新。 全局下拉刷新 这个方式简单&#xff0c;性能佳&#xff0c;最推荐&#xf…

Redis过期删除与内存淘汰策略面试题剖析

一、谈谈Redis过期删除策略 参考我的这篇博客“二、过期删除策略&内存淘汰策略”部分 高性能分布式缓存Redis-数据管理与性能提升之道_redis 高性能缓存数据库-CSDN博客 二、谈谈Redis内存淘汰策略 参考我的这篇博客“二、过期删除策略&内存淘汰策略”部分 高性能…

基于STM32的学习环境控制系统设计

&#x1f91e;&#x1f91e;大家好&#xff0c;这里是5132单片机毕设设计项目分享&#xff0c;今天给大家分享的是学习环境控制。 设备的详细功能见网盘中的文章《21、基于STM32的学习环境控制系统设计》&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1uWSZX2zbZwy9sY…

Linux中getifaddrs函数

文章目录 **函数原型****参数****返回值****释放资源****`struct ifaddrs` 结构****示例代码****输出示例****相关函数****总结**getifaddrs 是 Linux(以及其他 Unix-like 系统)中用于获取本机网络接口信息的系统调用。它提供了一种简单的方法来获取所有网络接口的地址信息,…

前端知识速记--JS篇:instanceof

前端知识速记–JS篇&#xff1a;instanceof 在JavaScript中&#xff0c;instanceof运算符用于检测一个对象是否是另一个对象的实例。它的基本语法为&#xff1a;obj instanceof Constructor。如果obj是Constructor的实例&#xff0c;它将返回true&#xff0c;否则返回false。这…