Ohhnews

分类导航

InfoQ Java

Kafka和Flink管道中的Schema过度扩张问题及解决方案

本文探讨了在Kafka和Flink数据管道中,由于一对一的event-to-schema映射导致的Schema过度扩张问题。随着事件类型增多,下游查询变得复杂、维护成本上升、schema漂移频发。作者提出了基于判别器(discriminator)的schema合并模式:将具有80-95%结构重叠的多个schema合并为一个统一schema,通过枚举字段标识事件变体,并使用可空属性块承载变体特定数据。此方法可将十几张表压缩至一两张,消费者查询免去跨表UNION操作。文章以拼车场景为例,详细展示了合并schema的设计、Flink管道中的两层适配器实现(纯转换逻辑层与框架集成层),并讨论了schema演化(通过Avro的可空块和完整兼容性模式)、权衡(记录变宽、治理开销、调试习惯变化)以及不适用的场景。最后指出,对于结构高度重叠且常被一起查询的事件类型,尽早合并schema可显著降低长期维护复杂性。
#kafka#flink#schema过度扩张#schema合并#事件驱动架构
$ more
InfoQ Java

播客:追寻高效的Java开发——从1BRC到AI原生开发Hardwood

Confluent技术专家、Java Champion Gunnar Morling分享了他使用Java构建高性能应用程序的经验,特别是在数据领域。他介绍了在构建持久执行引擎、自举以及AI原生开发Apache Hardwood方面的实验。Apache Hardwood是一个极简依赖的Java解析器,用于解析Apache Parquet文件。该播客深入探讨了如何利用Java实现高效的开发实践。
#java#高性能开发#apache hardwood#ai原生开发#数据解析
$ more
foojay

Foojay播客 #96:无需LocalStack的本地AWS开发——认识基于GraalVM的替代方案Floci

Foojay播客第96期介绍了Floci,一个基于Quarkus和GraalVM原生编译的高性能云服务仿真器。它能够在25毫秒内本地启动35个AWS服务,仅消耗13MB内存,无需云账单。Floci由Hector Ventura在LocalStack停止开源社区版后创建,利用AI辅助加速服务集成开发。本期节目探讨了Floci的设计理念、与LocalStack的对比、GraalVM兼容性挑战、数据持久化方案,以及未来对Azure和GCP的支持计划。对于需要快速本地测试的开发者、编写Terraform的运维工程师或学习云技术的学生,Floci提供了一个轻量级、免费的替代方案。
#floci#graalvm#aws仿真#本地开发#开源工具
$ more
InfoQ Java

OpenJDK新闻综述:Vector API、紧凑对象头与G1GC默认化

2026年5月18日当周,OpenJDK生态出现大量活动,三个JEP从Proposed状态升至Target再到Targeted状态,另有三个JEP从Candidate升至Proposed再到Target状态,均针对JDK 27。此外,提议的发布计划也已最终确定。
#openjdk#jdk 27#vector api#g1gc#紧凑对象头
$ more
Baeldung

从HttpServletRequest中获取HTTP基本认证

概述 HTTP基本认证是最常见的HTTP安全机制,通过在请求头中携带Base64编码的用户名密码。本文详细介绍如何从Spring应用的HttpServletRequest中提取凭证,包括手动解析Authorization头和使用自定义Servlet过滤器两种方法。文章还提供了完整的代码示例和单元测试。需要强调的是,Base64只是编码而非加密,使用HTTP基本认证时必须配合HTTPS以确保安全性。
#http basic authentication#凭证提取#spring#httpservletrequest#base64
$ more
Spring Blog

Spring AI 发布多个新版本:1.0.8、1.1.7及2.0.0-M7

Spring AI 团队宣布发布 1.0.8、1.1.7 和 2.0.0-M7 三个版本,均已上线 Maven Central。此次更新涵盖多个版本线的改进、稳定性增强和错误修复。1.1.7 和 2.0.0-M7 版本还包含了针对 CVE-2026-41863 的安全修复。2.0.0-M7 版本引入了重大变更,包括废弃 SSE 传输并默认采用 Streamable HTTP 作为 MCP 服务器协议,新增了 ToolSpec 流式 API 用于程序化定义工具,以及升级 Gemini 2.5 Flash 支持等。其他修复包括:RedisVectorStore 删除截断、Ollama 与 GraalVM 原生镜像兼容性、OpenAiChatModel 流式 chunk 丢失等问题。
#spring ai#人工智能框架#安全更新#版本迭代#mcp协议
$ more
Jetbrains Blog

JetBrains契合度测试:这里是你理想的工作场所吗?

JetBrains的这篇博客没有采用传统的招聘文案风格,而是以“契合度测试”的形式,邀请读者评估自己是否适合公司独特的工作文化。文章阐述了JetBrains的核心价值观:由开发者创造并服务于开发者(包括设计师、营销人员等所有岗位),强调对细节的执着、自主权和责任感。公司是私有企业,不受外部投资者影响,因此可以专注于长期价值而非短期收益。工作环境鼓励员工主动发现问题并解决问题,而非等待指令;反馈文化直接且注重质量。适合那些追求卓越、享受深度工作、乐于不断成长并承担后果的人。公司流失率远低于行业平均水平,为员工提供自我设计的职业发展路径,无需频繁跳槽就能持续扩展职业生涯。
#jetbrains#企业文化#工作自主#开发者#职业成长
$ more
Baeldung

Java周刊第647期

本期概览 Java 26:从 JDK 21 到 26 的演进,涵盖语言、API 和运行时的改进。 AI 代理系统:探讨缓存策略(内部、分布式、语义缓存)及维护性传感器。 安全警示:Thymeleaf 模板注入漏洞(CVE-2026-40478)的缓解措施。 工具更新:Quarkus 3.36.0、GlassFish 8.0.2、IntelliJ IDEA 2026.1.2、Compose Multiplatform 1.11.0 等发布。 技术思考:AI 编码代理的反馈循环、人类瓶颈、Cassandra 数据迁移及 Kotlin 生产力数据。 本周精选:Mark Manson 的《反向法则》——学会放手才能获得更好的结果。
#java#spring#人工智能#代码维护#技术更新
$ more
Jetbrains Blog

Rider 2026.2 EAP新技能finding-tests:让AI代理精准定位测试文件,节省50% Token

JetBrains在Rider 2026.2 EAP中推出finding-tests技能,旨在大幅提升AI Agent编写测试的效率。该技能利用dotCover的代码覆盖分析能力,当AI需要添加测试时,能直接定位到正确的测试文件位置,无需AI自行遍历项目目录。这不仅避免了错误放置测试文件,还能确保新测试遵循项目现有的测试风格。根据内部基准测试,使用该技能可将Token消耗降低约50%。该技能默认启用,可通过设置禁用,也可与外部AI代理(如Claude Code、Codex)配合使用。已知问题包括首次运行偶尔失败、大型解决方案超时等,JetBrains正在优化。该功能为EAP版本,欢迎用户反馈。
#rider#ai代理#代码覆盖#测试定位#token成本
$ more
foojay

上下文即预算:八个杠杆与三种工作流模式

核心观点 AI编程助手的上下文窗口是有限预算,需精打细算。Token消耗主要分布在工具模式、检索文件和对话历史。文章提出八个优化杠杆(上下文范围限定、提示缓存排序、工具/MCP消毒、自定义指令、模型路由、输出纪律、仓库卫生、可观测性)和三种工作流模式(Ralph Wiggum循环、自动压缩、规划器-实施者-审查者转交),帮助团队降低成本、提升响应速度和答案质量。最后给出周一检查清单,强调系统性纪律。
#上下文管理#token预算#提示缓存#mcp#工作流模式
$ more