Ohhnews

分类导航

foojay

幂等写入路径:在消息重复时保持集成管道正确性

本文通过一次结算对账异常引出分布式环境下消息重复投递的必然性,强调集成管道必须具备幂等写入能力。核心在于使用业务级幂等键(如支付ID加状态)而非消息ID去重,并将去重检查下沉到数据库唯一约束,与业务写入同事务执行,避免并发竞态。针对重复消息,可根据业务语义采用忽略、带版本校验覆盖、合并等策略,并建议构建跨系统实体ID映射与全局关联ID,便于追溯。最后通过端到端事件追踪、实时扫描和离线对账,在五分钟内发现、十分钟定位并半小时恢复潜在数据丢失。
#幂等性#集成管道#消息去重#数据一致性#分布式系统
$ more
foojay

Push V3:来自服务器的一条消息即可触达所有界面

Codename One 正式将 Push V3 合并入核心,并完成新云服务实现。新版本支持类型化消息模型、托管推送凭据、订阅管理、服务端分众、活动与数据统计,并可将通知扩展到 Widget、Live Activity、Dynamic Island 等 Surface。现有推送用户需要在本周内将推送服务地址从 push.codenameone.com 切换到 cloud.codenameone.com,并使用现有代码发送真实通知进行兼容性验证,因为下周将切换旧服务流量。V3 引入不可变 PushMessage 模型,以 PushListener 取代旧 PushCallback,同时保留自定义推送基础设施的扩展接口。文章还预告了 Maven 仓库迁移、设备端 AI 与 MCP、健康数据 API 以及地图路线功能等相关更新。
#push v3#codename one#推送通知#跨平台开发#云服务
$ more
DZone Java

如何将PyFlink管道p99延迟从3-5秒降至约500毫秒

PyFlink管道的端到端p99延迟在生产负载下长期处于3-5秒,未达SLO。定位发现瓶颈并非业务逻辑,而是每条记录在JVM与Python进程之间往返,并由Python UDF调用Protobuf反序列化。优化方案是将Protobuf反序列化下沉到Flink JVM侧的原生Protobuf格式,在表DDL中声明消息类,Python仅负责编排和SQL;无需改写Java代码。实测p99降至约500毫秒,吞吐保持约5000事件/秒,并行度从12降至8,代码量减少。该优化适合经性能剖析确认Python解析与跨进程数据移动是主要瓶颈的场景;若瓶颈来自sink背压、网络或外部调用,效果有限。实现上需将.proto编译为Java类并打入fat JAR,注意Flink版本属性差异、枚举处理、Schema演进和端到端基准测试。
#pyflink#protobuf#flink#性能优化#延迟优化
$ more
DZone Java

编排与MCP融合:使用Quarkus Flow和AGENTS.md构建受管控的智能体工作流

本文介绍了结合Quarkus Flow、LangChain4j、MCP与AGENTS.md构建生产级多智能体工作流的方法。Quarkus Flow基于CNCF Serverless Workflow规范,在JVM内实现带状态转换、重试、循环上限和人工审批的轻量编排;MCP统一连接企业数据与外部工具;AGENTS.md以项目级Markdown定义智能体边界与行为规则。文章通过内容发布智能体示例,展示了WriterAgent调用Brave Search MCP工具起草、CriticAgent审核并循环修订直至批准的过程,并讨论了生产环境所需的治理、追踪、人工介入及GraalVM原生镜像支持。
#quarkus flow#mcp#ai智能体#工作流编排#agents.md
$ more
Jetbrains Blog

CVE-2026-63077后续公告:TeamCity漏洞已遭积极利用,官方敦促立即更新

本文是JetBrains针对TeamCity服务器CVE-2026-63077漏洞发布的后续公告。官方表示,自7月27日发布初始公告以来,已收到针对未修补TeamCity服务器的主动攻击和尝试性攻击报告。该漏洞无需认证即可被利用,攻击者可通过HTTP(S)访问TeamCity代理轮询协议,执行任意操作系统命令,可能危及服务器数据、配置、存储凭证以及构建产物和CI/CD流水线完整性。JetBrains已在TeamCity 2025.11.7和2026.1.3中修复该漏洞,并为此前版本提供安全补丁插件。官方强烈建议用户立即升级或安装补丁,并检查服务器日志和未授权构建代理列表。TeamCity Cloud用户无需额外操作。文章还建议限制服务器外部访问,并避免让TeamCity服务器与构建代理共用同一主机以降低风险。
#cve-2026-63077#teamcity#安全漏洞#漏洞利用#安全更新
$ more
Jetbrains Blog

JetBrains Academy 七月动态:AI应用开发课程、pandas 新课与 Kotlin 15 周年

七月要点 JetBrains Academy 发布七月摘要:推出 Ardit Sulce 的 Gen AI Engineer Bootcamp,帮助学习者在 PyCharm 中免费动手构建本地编码助手、RAG 应用、Google Sheets 自动化、图像识别应用与语音 AI 助手;上线基于官方文档的 pandas 课程,提供 IDE 实时反馈和两个实战项目;为庆祝 Kotlin 发布 15 周年,Hyperskill 向新用户免费开放全部 Kotlin 课程至 10 月 9 日;IntelliJ IDEA Conf 2026 完整议程公布,将于 9 月 8-9 日举办;另发布 Python 软件基金会董事 Sheena O'Connell 访谈,探讨 AI 时代如何学习 Python。
#jetbrains academy#kotlin#pandas#人工智能开发#编程教育
$ more
Baeldung

Google GenAI Chat与Spring AI集成入门指南

教程简介 本文介绍如何在Spring Boot应用中集成Google Gemini模型,使用Gemini Developer API进行文本生成。内容涵盖项目依赖配置、显式激活聊天提供方、底层ChatModel与高级ChatClient API的使用、提示词模板、实时Google搜索检索增强,以及通过WebFlux实现流式响应。此外,文章还演示了使用MockMvc和@MockBean进行控制器单元测试的方法,帮助开发者构建稳定、可测试的生成式AI集成方案。
#spring ai#google gemini#生成式ai#java开发#人工智能
$ more
Baeldung

Spring AI AutoMemoryTools:为AI代理赋予长期记忆能力

本文介绍了Spring AI AutoMemoryTools,它是Spring AI社区库中用于实现AI代理长期记忆的组件。与仅处理对话记忆的ChatMemory和RAG不同,AutoMemoryTools通过工具调用和基于文件的持久化,让代理记住用户偏好、反馈、项目背景和外部信息引用位置等信息。文章讲解了它内置的六种工具:查看、创建、替换、插入、删除和重命名记忆文件,并介绍三种集成方式:默认的AutoMemoryToolsAdvisor沙箱配置、自定义系统提示词的AutoMemoryTools配置,以及不受限的FileSystemTools与ShellTools方案。最后通过Spring Boot聊天机器人和Ollama本地模型演示了跨会话记忆效果。代码示例已发布在GitHub上。
#spring ai#automemorytools#长期记忆#ai代理#java开发
$ more
Baeldung

使用Spring AI探索Agent2Agent协议(A2A)

本文介绍如何通过Spring AI实现Agent2Agent(A2A)协议,让AI智能体能够相互发现并进行高效通信。文章以招聘筛选系统为例,构建了一个充当A2A客户端的编排智能体和三个分别处理技能匹配、背景与薪资核查的远程服务端智能体。内容包括A2A协议基础、智能体卡片的发现机制、服务端的工具注册与AgentExecutor配置,以及客户端的远程智能体发现、消息发送与编排提示策略。最后通过调用REST接口测试,编排智能体能将多个专业智能体的结论合并为一份筛选摘要。
#a2a协议#spring ai#人工智能#智能体通信#ai智能体
$ more
DZone Java

HTTP QUERY方法详解:RFC 10008、生态采用与Quarkus实现

RFC 10008定义了HTTP QUERY方法,这是继2010年RFC 5789以来HTTP首次新增方法。QUERY请求在语义上安全且幂等,可携带请求体,同时具备可缓存性;其查询含义由Content-Type决定,服务端可通过Accept-Query头声明支持的查询媒体类型,并可用Location头指向等价资源。文章介绍了Tomcat、Jetty、Jakarta Servlet和Spring生态的适配进展,并演示了基于Quarkus和Jakarta REST @HttpMethod扩展实现商品目录QUERY接口的示例,包括JSON与表单两种媒体类型、415/422错误处理、缓存与条件请求等。QUERY并非全新革命,而是将既有POST查询模式标准化,使缓存、幂等重试和工具链获益。
#http#query#rfc 10008#quarkus#技术标准
$ more