# 1. Helidon 的两种编程模型,Helidon SE(函数式)与 Helidon MP(MicroProfile)的差异 A SE 是函数式显式模型,MP 基于 MicroProfile/CDI 标准注解 ✓ 正确答案 B Quarkus 在构建期只做配置校验,并不生成 Bean 元数据与字节码 C SE 也使用 @Path/@Inject 注解 D MP 支持函数式路由
# 2. Vert.x 的响应式引擎,EventLoop 线程模型、Verticle 与共享数据(SharedData) A SharedData 只能在同一进程内共享 B EventLoop 线程可以随意阻塞 C Verticle 之间只能通过 SharedData 通信 D EventLoop 上处理器不并发执行且不能阻塞,Verticle 是部署单元,SharedData 提供共享数据 ✓ 正确答案
# 3. MicroProfile 规范与 Jakarta EE 的关系,Config/Health/Metrics/OpenAPI 等标准 API A MicroProfile 与 Jakarta EE 完全无关,独立于 Jakarta 规范 B MicroProfile 是 Jakarta EE 的替代品 C MicroProfile 基于 Jakarta EE 并补充配置、健康、指标、容错等微服务标准 API ✓ 正确答案 D MicroProfile 只提供 OpenAPI,不含健康检查
# 4. Vert.x 的阻塞代码处理,executeBlocking 与 worker verticle 如何把阻塞任务移出事件循环,避免饿死其他请求 A 它只在运行期翻译 Spring 注解,无法在构建期生成元数据 B 阻塞任务必须留在事件循环线程执行 C executeBlocking 把阻塞任务调度到 worker 线程池执行,结果回调到事件循环,避免阻塞事件循环 ✓ 正确答案 D worker verticle 运行在 EventLoop 线程
# 5. Vert.x 的 Future/CompositeFuture 异步编排与虚拟线程时代的定位 A Future/CompositeFuture 是事件循环下的非阻塞异步编排,虚拟线程提供同步风格并发,两者可互补 ✓ 正确答案 B 热加载每次改动都需要重新启动整个应用才能生效 C CompositeFuture 只能串行执行 D 虚拟线程无法与 Vert.x 共存
# 6. Helidon Nima(虚拟线程原生支持)如何简化阻塞式编程 A 虚拟线程无法提高并发吞吐 B 虚拟线程会阻塞平台线程 C Nima 必须使用事件循环与回调 D 每个请求一个虚拟线程,可自由阻塞而不阻塞平台线程,兼具同步与高并发 ✓ 正确答案
# 7. Vert.x 的集群模式(Hazelcast/Infinispan 集群管理器)与分布式事件总线 A 集群管理器(Hazelcast/Infinispan)负责成员发现与共享数据,EventBus 支持跨节点消息路由 ✓ 正确答案 B 集群 EventBus 只能在同一节点内通信 C 配置错误只能在运行期被发现,字节码无法在构建期增强 D 分布式共享数据无法跨节点共享
# 8. MicroProfile Rest Client 与容错(Fault Tolerance)注解 A 所有端点都固定调度到 worker 线程执行,从不使用事件循环 B Rest Client 声明式调用远程服务,Fault Tolerance 注解提供超时/重试/熔断/降级 ✓ 正确答案 C Fault Tolerance 只能用于本地调用 D Rest Client 不支持容错注解
# 9. Vert.x 与 Spring 生态的共存,Vert.x 内核 + Spring Boot 组合的实践 A Repository 模式把数据访问方法直接放在实体类上 B Vert.x 与 Spring 完全不能集成 C 两者共存无法共享依赖注入 D 可用 Spring Boot 管业务与依赖,Vert.x 管 IO 引擎,阻塞调用需 executeBlocking 隔离 ✓ 正确答案
# 10. Spring/Quarkus/Helidon/Vert.x 在虚拟线程与 Native 双轨下的选型矩阵 A Quarkus 不支持虚拟线程 B 虚拟线程与 Native 是同一维度 C 所有框架在两条轨道上成熟度相同 D 按虚拟线程与 Native 两个正交维度评估各框架成熟度,结合业务需求选择 ✓ 正确答案
# 11. Helidon MP 与 Quarkus 的 MicroProfile 实现对比 A Quarkus 无法把 Kubernetes ConfigMap 或 Secret 作为配置源读取 B 两者实现机制完全相同 C Helidon MP 不支持故障容错 D 两者 API 兼容但实现不同,Quarkus 编译期优化更强,Helidon MP 更轻更标准 ✓ 正确答案
# 12. Vert.x Web 的 Router 与路由处理器,子路由、失败处理与过滤器,与 Spring MVC 的编程模型差异 A Vert.x Web 用函数式代码注册路由与 handler,Spring MVC 用注解+反射映射 ✓ 正确答案 B 两者都用注解声明路由 C Vert.x Web 不支持子路由 D Spring MVC 用函数式代码注册路由,不使用注解映射
# 13. Vert.x EventBus 的消息模式,发布/订阅、点对点与请求-响应,消息编解码与超时处理 A Spring Boot DevTools 类变更时采用热替换而非重启 B send 点对点、publish 广播、request/reply 请求响应,自定义类型需注册 MessageCodec ✓ 正确答案 C 自定义类型无需编解码器 D send 无法设置超时
# 14. Helidon 的 GraalVM Native Image 支持与快速启动特性 A 快速启动与反射无关 B Helidon 启动慢、内存高 C Helidon 不支持原生编译 D Helidon 轻量、少反射,配合 Native 元数据生成可执行文件,启动快内存低 ✓ 正确答案
# 15. Vert.x 的 HttpClient/WebClient 与背压(pause/resume)机制 A 扩展在运行期动态生成 GraalVM 所需的反射与序列化元数据 B 背压机制会丢弃数据 C 通过 pause/resume 控制接收速率,防止消费者消费慢时数据积压导致内存溢出 ✓ 正确答案 D 背压与内存无关
# 16. Helidon Config 与 Kubernetes ConfigMap/Secret 的集成 A Helidon Config 无法把多个配置源合并进统一配置树 B 无法读取 K8s 配置 C 提供 Kubernetes ConfigSource 读取 ConfigMap/Secret,支持刷新与加密 ✓ 正确答案 D Secret 只能明文存储
# 17. Vert.x 的 TCP/UDP 自定义协议服务器与网关场景 A 扩展只包含运行期组件,没有构建期处理器(Build Step) B 用 NetServer/DatagramSocket 构建自定义协议服务器,需处理粘包拆包,可做网关代理 ✓ 正确答案 C TCP 数据无需处理帧定界 D 无法实现自定义协议解析
# 18. Vert.x 的 Metrics(Micrometer 集成)与异常处理(handler) A 通过 vertx-micrometer-metrics 集成 Micrometer 暴露指标,用 failureHandler 捕获路由异常 ✓ 正确答案 B Vert.x 无法采集指标 C 异常无法被 handler 捕获 D 指标只能本地打印,无法暴露 Prometheus
# 19. 信创环境下 Helidon/Vert.x 的适配现状 A Micronaut 的 @KafkaListener 只能在运行期通过反射实现消费者 B 纯 Java 框架依赖少,但需验证国产 CPU/OS/数据库/中间件的兼容性并替换组件 ✓ 正确答案 C 信创环境无需考虑框架兼容 D Vert.x 与国产数据库完全无法兼容
# 20. Helidon Security,provider 链的认证授权、注解式保护与 OIDC/JWT 集成 A 依赖注入必须在运行期通过反射扫描类路径才能完成 B provider 链只能有一个 provider C 注解式保护无法返回 401/403 D 用 provider 链组合认证授权,注解式保护加 OIDC/JWT 集成实现标准化认证 ✓ 正确答案