使用Flink SQL构建企业级AI代理:连接LLM与内部数据

2025-06-18

本文探讨如何使用Flink SQL构建企业级AI代理,连接大型语言模型(LLM)与内部数据和资源。针对结构化数据,Flink SQL的SQL连接语义可以轻松地将外部数据库中的数据与LLM输入结合。对于非结构化数据,文章建议使用检索增强生成(RAG)技术,将数据编码成向量存储在向量数据库中,再通过Flink SQL的向量类型支持进行查询和结合。文章以总结研究论文并结合内部研究为例,阐述了如何使用两个Flink SQL作业构建AI代理系统,一个作业更新向量存储,另一个作业进行查询和LLM调用。最后,文章提到了使用Process Table Functions (PTF)集成Anthropic的MCP标准,以实现更灵活的AI代理构建。

阅读更多
开发 Flink SQL

流式处理 vs. 批处理:一场关于“推”与“拉”的较量

2025-05-18

传统的"流式处理 vs. 批处理"讨论过于简单化。许多流式系统内部也采用批处理技术来提高性能,但这并非问题的核心。更关键的区别在于数据处理的模式:"推"模式实时推送数据,提供完整实时视图;而"拉"模式则定期查询数据,可能错过更新和删除。虽然"推"模式复杂度更高,但其实时性优势显著,一旦体验过秒级数据新鲜度,就很难再回去。实际上,这两种模式并非互相排斥,很多系统会结合两者优势,例如使用批处理进行数据回填。

阅读更多
开发 批处理

Kafka 的未来:超越分区,走向更强大的消息队列

2025-04-25

本文探讨了Kafka的未来改进方向,核心在于摆脱分区限制,转向以键为中心的访问模式。这将带来更高效的数据访问和回放,支持动态消费者数量调整,并解决分区阻塞问题。此外,文章还建议引入主题层次结构、并发控制、Broker端Schema支持、可扩展性、同步提交回调、快照功能和多租户支持等特性,以提升Kafka的性能、可靠性和易用性,使其更适合构建现代数据应用。

阅读更多
开发

Kafka 4.0 的 AOT 缓存:启动速度提升 59%

2025-03-28

本文介绍了如何利用 Java 的 AOT (Ahead-of-Time) 编译技术提升 Apache Kafka 4.0 的启动速度。通过创建 AOT 缓存文件,作者成功将 Kafka 的启动时间从 690 毫秒缩短到 285 毫秒,提升了 59%。过程中,作者也遇到并解决了 JMX 冲突的问题,最终成功创建并应用 AOT 缓存,取得了显著的性能提升。

阅读更多
开发 AOT 编译

微服务架构下的同步预算:如何在分布式系统中平衡同步和异步调用

2025-03-27

本文探讨了在构建分布式服务系统时,如何有效管理同步调用的重要性。作者提出“同步预算”的概念,建议尽量减少服务间的同步请求,以提高系统性能和可用性。同步调用代价高昂,会影响响应时间和系统稳定性。文章以电商订单处理为例,说明如何通过异步通信(例如使用Kafka消息队列)来处理与库存和发货服务的交互,仅在必要时(例如支付服务)使用同步调用。作者还介绍了Outbox模式和CDC技术,用于处理异步通信中的消息缓冲和数据同步问题,最终实现高性能和高可用性的分布式系统。

阅读更多