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

deepseek梳理java高级开发工程师微服务面试题

Java微服务高级面试题与答案

一、微服务架构设计

1. 服务拆分原则

Q1:微服务拆分时有哪些核心原则?如何解决拆分后的分布式事务问题?

答案:

服务拆分五大原则:
1. 单一职责原则(SRP)- 每个服务只负责一个业务能力- 示例:订单服务不处理支付逻辑2. 领域驱动设计(DDD)- 按限界上下文划分- 聚合根作为服务边界3. 松耦合高内聚- 服务间通过API通信- 避免共享数据库4. 团队自治- 两个披萨团队原则(6-10人)- 全功能团队(包含前后端、测试)5. 演进式拆分- 从单体逐步剥离- 优先拆分高频变更模块分布式事务解决方案:
1. Saga模式:- 长事务拆分为多个本地事务- 每个事务有补偿操作- 实现方式:a. 编排式(Orchestration):中央协调器b. 协同式(Choreography):事件驱动2. TCC模式:- Try:预留资源- Confirm:确认操作- Cancel:取消预留- 适用金融等高一致性场景3. 本地消息表:- 业务与消息表同库事务- 消息队列保证最终一致4. 最大努力通知:- 适用于可容忍延迟的场景- 定时任务补偿

二、Spring Cloud生态

2. 服务注册发现

Q2:Eureka与Nacos在服务注册发现机制上有何本质区别?如何设计高可用的注册中心?

答案:

核心区别:
┌──────────────────┬──────────────────────────────┬──────────────────────────────┐
│ 特性            │ Eureka                       │ Nacos                        │
├──────────────────┼──────────────────────────────┼──────────────────────────────┤
│ 数据一致性      │ AP模型(最终一致)            │ CP/AP可切换                  │
│ 健康检查        │ 客户端心跳(30秒)            │ TCP/HTTP/MYSQL多种检查       │
│ 负载均衡        │ 需配合Ribbon                 │ 内置权重/元数据路由           │
│ 配置管理        │ 不支持                        │ 统一配置管理                 │
│ 雪崩保护        │ 有自我保护模式                │ 有健康阈值保护               │
│ 注销时间        │ 约90秒                        │ 实时注销                     │
└──────────────────┴──────────────────────────────┴──────────────────────────────┘高可用设计:
1. 集群部署:- 3-5个节点跨可用区部署- 节点间数据同步2. 多级缓存:- 客户端缓存服务列表- 服务端多级缓存3. 容灾策略:- 注册中心宕机时客户端仍可用- 本地缓存服务列表4. 优雅降级:- 心跳失败阈值控制- 自动隔离不健康实例Nacos集群配置示例:
# cluster.conf
192.168.1.1:8848
192.168.1.2:8848
192.168.1.3:8848# application.properties
spring.cloud.nacos.discovery.server-addr=192.168.1.1:8848,192.168.1.2:8848,192.168.1.3:8848

3. 服务通信

Q3:OpenFeign的底层原理是什么?如何实现自定义的请求拦截和编解码?

答案:

OpenFeign核心原理:
1. 动态代理:- 通过JDK动态代理生成接口实现- 方法调用转为HTTP请求2. 请求处理流程:a. 解析方法注解(@RequestMapping等)b. 构造RequestTemplatec. 应用拦截器链d. 发送HTTP请求(默认使用HttpURLConnection)e. 处理响应(解码)3. 关键组件:- Contract:注解解析- Encoder:请求编码- Decoder:响应解码- Logger:日志记录自定义扩展实现:
1. 请求拦截器:
@Bean
public RequestInterceptor customInterceptor() {return template -> {template.header("X-Auth", "token");template.query("timestamp", System.currentTimeMillis());};
}2. 自定义编解码:
public class CustomDecoder implements Decoder {@Overridepublic Object decode(Response response, Type type) {// 自定义解码逻辑}
}3. 错误处理:
public class CustomErrorDecoder implements ErrorDecoder {@Overridepublic Exception decode(String methodKey, Response response) {// 根据状态码构造异常}
}高级配置:
1. 连接池:
feign.httpclient.enabled=true
feign.okhttp.enabled=true2. 超时控制:
feign.client.config.default.connectTimeout=5000
feign.client.config.default.readTimeout=300003. 日志级别:
logging.level.[FeignClient接口全限定名]=DEBUG

三、服务治理

4. 熔断降级

Q4:Sentinel与Hystrix的熔断策略有何不同?如何设计自适应熔断阈值?

答案:

熔断策略对比:
┌──────────────────┬──────────────────────────────┬──────────────────────────────┐
│ 特性            │ Hystrix                      │ Sentinel                     │
├──────────────────┼──────────────────────────────┼──────────────────────────────┤
│ 熔断模型        │ 基于异常比例+时间窗口         │ 基于QPS/响应时间/异常比例      │
│ 隔离策略        │ 线程池/信号量                │ 信号量                        │
│ 流量控制        │ 简单限流                     │ 基于QPS/调用关系/热点参数      │
│ 规则配置        │ 代码/配置文件                │ 动态规则(支持Nacos/ZK)      │
│ 实时监控        │ Dashboard                    │ 控制台+Metric                │
│ 系统自适应      │ 不支持                        │ 支持系统负载保护              │
└──────────────────┴──────────────────────────────┴──────────────────────────────┘自适应熔断设计:
1. 动态阈值算法:- 基于历史数据滑动窗口统计- 使用PID控制器调整阈值- 公式:threshold = base + Kp×error + Ki×∫error + Kd×Δerror2. 实现方案:
// Sentinel自适应熔断规则
FlowRule rule = new FlowRule();
rule.setResource("methodA");
rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
rule.setControlBehavior(RuleConstant.CONTROL_BEHAVIOR_WARM_UP);
rule.setWarmUpPeriodSec(10); // 冷启动时间
rule.setMaxQueueingTimeMs(500); // 排队超时
rule.setStrategy(RuleConstant.STRATEGY_ADAPTIVE); // 自适应模式3. 关键指标:- 平均响应时间(RT)- 异常比例(ErrorRatio)- 系统负载(SystemLoad)- 并发线程数(Concurrency)生产配置示例:
# 初始阈值100QPS,根据系统负载动态调整
spring.cloud.sentinel.flow.adaptive.enabled=true
spring.cloud.sentinel.flow.adaptive.base=100
spring.cloud.sentinel.flow.adaptive.maxAllowedQps=500

5. 分布式追踪

Q5:Sleuth+Zipkin的追踪原理是什么?如何分析跨服务的性能瓶颈?

答案:

追踪原理:
1. 上下文传播:- TraceID:全局唯一跟踪ID(16字节)- SpanID:每个工作单元的ID- ParentSpanID:父Span的ID2. 数据采集:- 通过Brave库植入埋点- 拦截Spring MVC、Feign等组件3. 采样策略:- 概率采样(如10%)- 限流采样(每秒N条)- 自定义采样(根据业务标记)性能瓶颈分析:
1. 关键指标:- 服务依赖图- 各Span耗时占比- 跨服务调用延迟2. 分析方法:a. 识别关键路径(Critical Path)b. 比较相同Trace的不同执行c. 分析网络延迟(Client-Server时间差)d. 检测异常调用链(错误/超时)3. 优化案例:
问题现象:订单创建平均耗时1.2秒
分析过程:
- 追踪显示78%时间花费在库存服务
- 库存服务的数据库查询没有走索引
解决方案:
- 添加库存表的商品ID索引
- 引入本地缓存
结果:耗时降至350ms高级配置:
1. 采样率控制:
spring.sleuth.sampler.probability=0.12. 自定义Span:
@NewSpan("customOperation")
public void customMethod() {}3. 日志集成:
logging.pattern.level=%5p [${spring.application.name},%X{traceId},%X{spanId}]4. 消息队列追踪:
spring.sleuth.messaging.enabled=true

四、云原生微服务

6. Service Mesh

Q6:Istio与Spring Cloud在服务治理上有何异同?什么场景下建议使用Service Mesh?

答案:

架构对比:
┌──────────────────┬──────────────────────────────┬──────────────────────────────┐
│ 特性            │ Spring Cloud                │ Istio                        │
├──────────────────┼──────────────────────────────┼──────────────────────────────┤
│ 治理方式        │ SDK集成(代码级)            │ Sidecar代理(基础设施层)      │
│ 通信协议        │ HTTP/REST为主                │ 支持HTTP/gRPC/TCP等多协议     │
│ 服务发现        │ Eureka/Nacos等               │ 集成K8s服务发现              │
│ 流量管理        │ 网关+负载均衡                │ 细粒度路由规则(VirtualService)│
│ 可观测性        │ Sleuth/Zipkin                │ 内置Prometheus/Grafana/Kiali │
│ 多语言支持      │ 主要支持Java                 │ 支持任意语言                 │
│ 部署复杂度      │ 相对简单                      │ 需要K8s环境                  │
└──────────────────┴──────────────────────────────┴──────────────────────────────┘Service Mesh适用场景:
1. 多语言技术栈:- 非Java服务需要同等治理能力2. 已有K8s基础设施:- 希望复用K8s服务发现3. 精细化流量控制:- 需要金丝雀发布、流量镜像等4. 零信任安全:- 自动mTLS加密通信5. 大规模微服务:- 超过100+服务的治理渐进式迁移方案:
1. 并行运行:- 新服务使用Istio- 旧服务保持Spring Cloud2. 流量切换:- 通过Istio Ingress接入所有流量- 逐步迁移服务到Mesh3. 统一控制面:- 使用Istio管理所有服务策略Istio关键组件:
1. Envoy:数据平面代理
2. Pilot:配置分发
3. Citadel:证书管理
4. Galley:配置验证

7. 服务网格数据平面

Q7:Envoy作为Sidecar代理有哪些核心功能?如何实现基于Header的流量路由?

答案:

Envoy核心功能:
1. 流量管理:- 负载均衡(轮询/权重/最少请求)- 熔断(基于异常检测)- 重试(可配置策略)2. 可观测性:- 访问日志(格式可定制)- 指标统计(Prometheus格式)- 分布式追踪(支持Zipkin/Jaeger)3. 安全:- mTLS自动加密- JWT验证- RBAC授权4. 协议支持:- HTTP/1.1、HTTP/2、gRPC- MySQL、MongoDB等数据库协议基于Header的路由配置:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: product-route
spec:hosts:- product-servicehttp:- match:- headers:x-user-type:exact: viproute:- destination:host: product-servicesubset: v2- route:- destination:host: product-servicesubset: v1高级路由场景:
1. 金丝雀发布:- 按权重分流(10%到新版本)2. 故障注入:- 模拟500错误测试熔断3. 流量镜像:- 复制流量到测试环境4. 跨集群路由:- 实现多集群灰度发布EnvoyFilter示例:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:name: custom-filter
spec:configPatches:- applyTo: HTTP_FILTERmatch:context: SIDECAR_INBOUNDpatch:operation: INSERT_BEFOREvalue:name: envoy.luaconfig:inlineCode: |function envoy_on_request(request_handle)local headers = request_handle:headers()if headers:get("x-debug") == "true" thenrequest_handle:logInfo("Debug header found")endend

相关文章:

deepseek梳理java高级开发工程师微服务面试题

Java微服务高级面试题与答案 一、微服务架构设计 1. 服务拆分原则 Q1:微服务拆分时有哪些核心原则?如何解决拆分后的分布式事务问题? 答案: 服务拆分五大原则: 1. 单一职责原则(SRP)- 每个…...

人事管理系统8

员工管理(分页查询、查看详情页、修改): 1. 分页查询 Staff.java 中加入部门名和岗位名两个属性以及对应的 get 和 set 方法。这两个属性没有数据库字段对应, 仅供前端显示用: private String departname; //部门名属…...

Stapi知识框架

一、Stapi 基础认知 1. 框架定位 自动化API开发框架:专注于快速生成RESTful API 约定优于配置:通过标准化约定减少样板代码 企业级应用支持:适合构建中大型API服务 代码生成导向:显著提升开发效率 2. 核心特性 自动CRUD端点…...

第三章 初始化配置(一)

我们首先介绍配置Logback的方法,并提供了许多示例配置脚本。在后面的章节中,我们将介绍Logback所依赖的配置框架Joran。 初始化配置 在应用程序代码中插入日志请求需要大量的规划和努力。观察表明,大约4%的代码用于记录。因此,即…...

WebGIS 开发中的数据安全与隐私保护:急需掌握的要点

在 WebGIS 开发中,数据安全与隐私保护是绝对不能忽视的问题!随着地理信息系统的广泛应用,越来越多的敏感数据被存储和传输,比如个人位置信息、企业地理资产等。一旦这些数据泄露,后果不堪设想。然而,很多开…...

C语言 ——— 函数栈帧的创建和销毁

目录 寄存器 mian 函数是被谁调用的 通过汇编了解函数栈帧的创建和销毁 转汇编后(Add函数之前的部分) 转汇编后(进入Add函数之前的部分) 转汇编后(正式进入Add函数的部分) ​编辑 总结 局部变量…...

2025年真实面试问题汇总(二)

jdbc的事务是怎么开启的 在JDBC中,事务的管理是通过Connection对象控制的。以下是开启和管理事务的详细步骤: 1. 关闭自动提交模式 默认情况下,JDBC连接处于自动提交模式(auto-commit true),即每条SQL语…...

【用「概率思维」重新理解生活】

用「概率思维」重新理解生活:为什么你总想找的「确定答案」并不存在? 第1层:生活真相——所有结果都是「综合得分」 现象:我们总想找到“孩子生病是因为着凉”或“伴侣生气是因为那句话”的单一答案现实:每个结果背后…...

Redis——线程模型·

为什么Redis是单线程却仍能有10w/秒的吞吐量? 内存操作:Redis大部分操作都在内存中完成,并且采用了高效的数据结构,因此Redis的性能瓶颈可能是机器的内存或者带宽,而非CPU,既然CPU不是瓶颈,自然…...

APS排程系统(Advanced Planning and Scheduling,高级计划与排程系统)

APS排程系统(Advanced Planning and Scheduling,高级计划与排程系统)是一种基于供应链管理和约束理论的智能生产管理工具,旨在通过动态优化资源分配和生产流程,解决制造业中的复杂计划问题。以下是其核心要点解析&…...

首个窗口级无人机配送VLN系统!中科院LogisticsVLN:基于MLLM实现精准投递

导读 随着智能物流需求日益增长,特别是“最后一公里”配送场景的精细化,传统地面机器人逐渐暴露出适应性差、精度不足等瓶颈。为此,本文提出了LogisticsVLN系统——一个基于多模态大语言模型的无人机视觉语言导航框架,专为窗户级别…...

仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮

巴黎,2025年5月6日——由全球开源创新组织GOSIM联合CSDN、1ms.ai共同主办的 GOSIM AI Paris 2025 大会今日在法国巴黎盛大开幕。GOSIM 作为开源人工智能领域最具影响力的年度峰会之一,本届大会以“开放、协作、突破”为核心,汇聚了来自华为、…...

《Effective Python》第2章 字符串和切片操作——深入理解Python 中的字符数据类型(bytes 与 str)的差异

引言 本篇博客基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 10: Know the Differences Between bytes and str 的总结与延伸。在 Python 编程中,字符串处理是几乎每个开发者都会频繁接触的基础操作。然而,Python 中的…...

windows 强行终止进程,根据端口号

步骤1:以管理员身份启动终端‌ 右键点击开始菜单 → 选择 ‌终端(管理员)‌ 或 ‌Windows PowerShell(管理员)‌。 ‌步骤2:检测端口占用状态‌ # 查询指定端口(示例为1806) netst…...

PHP-FPM 调优配置建议

1、动态模式 pm dynamic; 最大子进程数(根据服务器内存调整) pm.max_children 100 //每个PHP-FPM进程大约占用30-50MB内存(ThinkPHP框架本身有一定内存开销)安全值:8GB内存 / 50MB ≈ 160,保守设置为100 ; 启动时创建的进程数&…...

我喜欢的vscode几个插件和主题

主题 Monokaione Monokai Python 语义高光支持 自定义颜色为 self 将 class , def 颜色更改为红色 为装饰器修复奇怪的颜色 适用于魔法功能的椂光 Python One Dark 这个主题只在python中效果最好。 我为我个人使用做了这个主题,但任何人都可以使用它。 插件 1.Pylance Pylanc…...

openharmony 地图开发(高德sdk调用)

1.显示地图 2.利用sdk完成搜索功能,以列表形式展示,并提供定位和寻路按钮 3.利用sdk完成寻路,并显示路线信息和画出路线,路线和信息各自点击后可联动到对方信息显示 4.调用sdk 开始导航 商务合作:...

Kotlin-类和对象

文章目录 类主构造函数次要构造函数总结 对象初始化 类的继承成员函数属性覆盖(重写)智能转换 类的扩展 类 class Student { }这是一个类,表示学生,怎么才能给这个类添加一些属性(姓名,年龄…)呢? 主构造函数 我们需要指定类的构造函数。构造函数也是函数的一种,但是它专门…...

LVS+keepalived实战案例

目录 部署LVS 安装软件 创建VIP 创建保存规则文件 给RS添加规则 验证规则 部署RS端 安装软件 页面内容 添加VIP 配置系统ARP 传输到rs-2 客户端测试 查看规则文件 实现keepalived 编辑配置文件 传输文件给backup 修改backup的配置文件 开启keepalived服务 …...

可视化+智能补全:用Database Tool重塑数据库工作流

一、插件概述 Database Tool是JetBrains系列IDE(IntelliJ IDEA、PyCharm等)内置的数据库管理插件。它提供了从数据库连接到查询优化的全流程支持,让开发者无需离开IDE即可完成数据库相关工作。 核心价值: 统一工作环境&#xf…...

【认知思维】沉没成本谬误:为何难以放弃已投入的资源

什么是沉没成本谬误 沉没成本谬误(Sunk Cost Fallacy)是指人们倾向于根据过去已经投入的资源(时间、金钱、精力等)而非未来收益来做决策的一种认知偏差。简单来说,它反映了"我已经投入这么多,不能就这…...

Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法

Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法 在 Linux 系统的安全管理中,入侵防范是至关重要的环节。通过对系统进行安全基线检查,可以有效识别潜在的安全漏洞,并采取相应的修复措施,从而降低被入侵的风险…...

【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)

题意 需要维护 n n n \times n nn 平面上的整点,每个点 ( x , y ) (x, y) (x,y) 有权值 V ( x , y ) V(x, y) V(x,y),初始都为 0 0 0。 同时给定 n n n 次修改操作,每次修改给出 x 1 , x 2 , y 1 , y 2 , v x_1, x_2, y_1, y_2, v x…...

目标检测任务常用脚本1——将YOLO格式的数据集转换成VOC格式的数据集

在目标检测任务中,不同框架使用的标注格式各不相同。常见的框架中,YOLO 使用 .txt 文件进行标注,而 PASCAL VOC 则使用 .xml 文件。如果你需要将一个 YOLO 格式的数据集转换为 VOC 格式以便适配其他模型,本文提供了一个结构清晰、…...

2025深圳杯D题法医物证多人身份鉴定问题四万字思路

Word版论文思路和千行Python代码下载:https://www.jdmm.cc/file/2712074/ 引言 法医遗传学中的混合生物样本分析,特别是短串联重复序列(Short Tandem Repeat, STR)分型结果的解读,是现代刑事侦查和身份鉴定领域的核心…...

利用自适应双向对比重建网络与精细通道注意机制实现图像去雾化技术的PyTorch代码解析

利用自适应双向对比重建网络与精细通道注意机制实现图像去雾化技术的PyTorch代码解析 漫谈图像去雾化的挑战 在计算机视觉领域,图像复原一直是研究热点。其中,图像去雾化技术尤其具有实际应用价值。然而,复杂的气象条件和多种因素干扰使得这…...

Focal Loss 原理详解及 PyTorch 代码实现

Focal Loss 原理详解及 PyTorch 代码实现 介绍一、Focal Loss 背景二、代码逐行解析1. 类定义与初始化 三、核心参数作用四、使用示例五、应用场景六、总结 介绍 一、Focal Loss 背景 Focal Loss 是为解决类别不平衡问题设计的损失函数,通过引入 gamma 参数降低易…...

VScode 的插件本地更改后怎么生效

首先 vscode 的插件安装地址为 C:\Users\%USERNAME%\.vscode\extensions 找到你的插件包进行更改 想要打印日志,用下面方法 vscode.window.showErrorMessage(console.log "${name}" exists.); 打印结果 找到插件,点击卸载 然后点击重新启动 …...

这类物种组织heatmap有点东西

如果想知道研究对象(人、小鼠、拟南芥、恒河猴等​​)某个时候各个器官的fMRI信号强度、炎症程度等指标的差异,gganatogram可以以热图的形式轻松满足你的需求。 数据准备 以男性为例,数据包含四列, 每列详细介绍 org…...

通讯录程序

假设通讯录可以存放100个人的信息(人的信息:姓名、年龄、性别、地址、电话) 功能:1>增加联系人 2>删除指定联系人 3>查找指定联系人信息 4>修改指定联系人信息 5>显示所有联系人信息 6>排序(…...

无需翻墙!3D 优质前端模板分享

开发网站时,无需撰写 HTML、CSS 和 JavaScript 代码,直接调用模板内现成的组件,通过拖拽组合、修改参数,几天内即可完成核心页面开发,开发速度提升高达 70% 以上。让开发者更专注于业务逻辑优化与功能创新,…...

Shinkai开源程序 是一个双击安装 AI 管理器(本地和远程),它允许您使用简单的 UI 在 5 分钟或更短的时间内创建 AI 代理

​一、软件介绍 文末提供程序和源码下载 Shinkai 开源应用程序在 Web 浏览器中解锁了一流 LLM (AI) 支持的全部功能/自动化。它允许创建多个代理,每个代理都连接到本地或第三方LLMs(例如 OpenAI GPT),这些…...

vscode不能跳转到同一个工作区的其他文件夹

明白了,你说的“第二种情况”是指: 你先打开的是项目文件夹(比如 MyProject),然后通过 VS Code 的“添加文件夹到工作区”功能,把 ThirdPartyLib 文件夹添加进来。 结果,项目代码里 #include “…...

containerd 之使用 ctr 和 runc 进行底层容器操作与管理

containerd 是目前业界标准的容器运行时,它负责容器生命周期的方方面面,如镜像管理、容器执行、存储和网络等。而 ctr 是 containerd 自带的命令行工具,虽然不如 Docker CLI 用户友好,但它提供了直接与 containerd API 交互的能力…...

IMU 技术概述

IMU(惯性测量单元,Inertial Measurement Unit)是一种通过传感器组合测量物体运动状态和姿态的核心设备,广泛应用于导航、控制、智能设备等领域。以下从原理、组成、应用和发展趋势展开说明: 一、核心定义与本质 IMU …...

talk-centos6之间实现

在 CentOS 6.4 上配置和使用 talk 工具,需要注意系统版本较老,很多配置可能不同于现代系统。我会提供 详细步骤 自动化脚本,帮你在两台 CentOS 6.4 机器上实现局域网聊天。 ⸻ 🧱 一、系统准备 假设你有两台主机: …...

hivesql是什么数据库?

HiveSQL并非指一种独立的数据库,而是指基于Apache Hive的SQL查询语言接口,Hive本身是一个构建在Hadoop生态系统之上的数据仓库基础设施。 以下是对HiveSQL及其相关概念的详细解释: 一、Hive概述 定义: Hive是由Facebook开发&…...

(1)python开发经验

文章目录 1 安装包格式说明2 PySide支持Windows7 更多精彩内容👉内容导航 👈👉Qt开发 👈👉python开发 👈 1 安装包格式说明 PySide下载地址 进入下载地址后有多种安装包,怎么选择: …...

[论文翻译]PPA: Preference Profiling Attack Against Federated Learning

文章目录 摘要一、介绍1、最先进的攻击方式2、PPA3、贡献 二、背景和相关工作1、联邦学习2、成员推理攻击3、属性推理攻击4、GAN攻击5、联邦学习中的隐私推理攻击 三、PPA1、威胁模型与攻击目标(1)威胁模型(2)攻击目标 2、PPA 概述…...

北三短报文数传终端:筑牢水利防汛“智慧防线”,守护江河安澜

3月15日我国正式入汛,较以往偏早17天。据水利部预警显示,今年我国极端暴雨洪涝事件趋多趋频趋强,叠加台风北上影响内陆的可能性,灾害风险偏高,防汛形势严峻复杂。面对加快推进“三道防线”建设,提升“四预”…...

函数加密(Functional Encryption)简介

1. 引言 函数加密(FE)可以被看作是公钥加密(PKE)的一种推广,它允许对第三方的解密能力进行更细粒度的控制。 在公钥加密中,公钥 p k \mathit{pk} pk 用于将某个值 x x x 加密为密文 c t \mathit{ct} c…...

思维链实现 方式解析

思维链的实现方式 思维链的实现方式除了提示词先后顺序外,还有以下几种: 增加详细的中间步骤提示:通过提供问题解决过程中的详细中间步骤提示,引导模型逐步推导和思考。例如,在解决数学证明题时,提示词可以具体到每一步需要运用的定理、公式以及推理的方向,帮助模型构建…...

深入学习Zookeeper的知识体系

目录 1、介绍 1.1、CAP 理论 1.2、BASE 理论 1.3、一致性协议ZAB 1、介绍 2、角色 3、ZXID和myid 4、 历史队列 5、协议模式 6、崩溃恢复模式 7、脑裂问题 2、zookeeper 2.1、开源项目 2.2、功能 2.3、选举机制 3、数据模型 3.1、介绍 3.2、znode分类 4、监听…...

电商平台一站式安全防护架构设计与落地实践

引言:安全即业务,防御即增长 国际权威机构 Forrester 最新报告指出,2024 年全球电商平台因安全防护不足导致的直接营收损失高达 $180 亿,而采用一体化防护方案的头部企业客户留存率提升 32%。本文基于 10 万 节点防护实战数据&a…...

【Pandas】pandas DataFrame cummin

Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.any(*[, axis, bool_only, skipna])用于判断…...

奇妙小博客

import matplotlib.pyplot as plt# 定义顶点坐标 A [0, 0] B [6, 1] C [4, 6] P [4, 3]# 绘制三角形 ABC plt.plot([A[0], B[0], C[0], A[0]], [A[1], B[1], C[1], A[1]], b-, labelTriangle ABC) # 绘制点 P plt.scatter(P[0], P[1], colorr, labelPoint P(4,3))# 标注顶点…...

嵌入式学习笔记 - HAL_ADC_ConfigChannel函数解析

贴函数原型: 一 首先配置规则通道序列 其实所有的配置函数都是在对寄存器进行操作,要想看懂Hal库底层函数驱动就先把寄存器如何配置看懂,以下是配置规则通道寄存器的介绍,以ADC_SQR3为例,也就是通道序列1到序列6&…...

Java反射详细介绍

的反射(Reflection)是一种强大的机制,允许程序在运行时动态获取类的信息、操作类的成员(属性、方法、构造器),甚至修改类的行为。它是框架开发(如 Spring、MyBatis)、单元测试工具&a…...

2025年土木建筑与水利工程国际会议(ICCHE 2025)

2025 International Conference on Civil and Hydraulic Engineering (ICCHE 2025) (一)会议信息 会议简称:ICCHE 2025 大会地点:中国银川 投稿邮箱:icchesub-paper.com 收录检索:提交Ei Compendex,CPCI,C…...

适应性神经树:当深度学习遇上决策树的“生长法则”

1st author: Ryutaro Tanno video: Video from London ML meetup paper: Adaptive Neural Trees ICML 2019 code: rtanno21609/AdaptiveNeuralTrees: Adaptive Neural Trees 背景 在机器学习领域,神经网络(NNs)凭借其强大的表示学习能力&…...