December 12, 2024
前言 在Spring Cloud应用中可以非常低成本地集成Nacos实现配置动态刷新,在应用程序代码中通过Spring官方的注解@Value和@ConfigurationProperties,引用Spring enviroment上下文中的属性值, 关于这部分的介绍可以参照一文,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,比如: Nacos中配置是作为Spring上下文enviroment的属性源之一,获取属性时会收到其他属性源的干扰,比如通过JVM参数和环境变量注入的属性优先级比Nacos中的更高 通过spring.config.impo...
September 21, 2024
阅读原文地址: 本文作者系阿里云云原生微服务技术负责人,Spring AI Alibaba 发起人彦林,望陶和隆基对可观测和 RocketMQ 部分内容亦有贡献。 摘要:随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象...
July 23, 2024
OpenAI 国内停服,除了各个大模型厂商提供的迁移方案外,是否有其他更平滑的迁移方案呢?本文以 OpenAI 切换到通义千问为例,介绍开源网关 Higress 的应对方案。优势是: 默认按照模型价格和能力进行了合理映射,且支持用户自定义调整配置 可以通过 OpenAI 的统一协议对接多种大模型,屏蔽实现细节,降低接入新大模型的 API 适配成本 Higress 可以提供 token 限流插件、内容审核插件,通过网关的工程化能力实现业务收益 实操视频 步骤介绍 准备工作:需要登陆阿里云 第一步:启动 Higress AI 网关 Higress 有多种部署方式,...
July 22, 2024
背景简介 定时任务是指在约定的时间,或者按照固定频率周期性执行的任务。在企业应用中,非用户行为发起的后台业务,一般都是通过定时任务来实现,常见场景如下: 异步数据处理:比如先将订单入库,每分钟扫描未支付的订单做批处理。 自动化运维:比如每小时清理一次数据库的历史记录。 系统监控:比如每分钟扫描监控指标,如果超出阈值,进行报警。 数据同步:比如每天凌晨1点把mysql中的数据同步到大数据平台中。 在单体应用中,实现定时任务很简单,比如Java中有java.util.Timer和ScheduledExecutorService。在Spring框架中也提供了scheduling 方...
May 24, 2024
背景介绍 RAG(Retrieval Augmented Generation) 检索增强生成(RAG)是一种用于将数据与人工智能模型集成的技术。在 RAG 工作流程中,第一步将文档数据加载到矢量数据库(例如 Redis)中。当收到用户查询时,矢量数据库会检索一组与该查询相似的文档。然后,这些文档数据充当用户问题的上下文,并与用户的查询结合使用生成响应(通常通过 LLM 模型)。 在此示例中,我们将使用包含啤酒信息的数据集,包括名称、酒精体积 (ABV)、国际苦度单位 (IBU) 等属性以及每种啤酒的描述。该数据集将加载到 Redis 中,之后通过 Spring Cloud Ali...
May 9, 2024
快速体验 Spring Cloud Alibaba AI 旨在简化包含人工智能相关功能的应用程序的开发,避免不必要的复杂性。 Spring AI 的核心是提供抽象,作为开发 AI 应用程序的基础。这些抽象有多种实现方式,只需极少的代码改动即可轻松实现各个大模型之间的切换。 Spring AI 提供以下功能: 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface。 支持的模型类型包括“聊天”和“文本到图像”,还有更多模型类型正在开发中。 跨 AI 提供商的可移植 API,用于聊天和嵌入模型。支持同步和流 API...
January 27, 2024
本文章主要叙述在 Java 应用适配 Graalvm Native Image 中的步骤和遇到的一些问题!因为 Graalvm 官方文档相关概念叙述过于简单。基本靠问才能知道些许有用信息。所以写此文章。 关于 Graalvm 基础知识的相关学习,可以参照 Seata 社区 commiter 王良的 ,本文章主要介绍元数据适配。不对 Graalvm 基础做过多介绍。 Graalvm 现状介绍 GraalVM:是一种高性能运行时,可显着提高应用程序性能和效率,是微服务的理想选择。它专为使用 Java、JavaScript、基于 LLVM 的语言(例如 C 和 C++)以及其他动态语言编写...
January 27, 2024
GitHub issue 参见: 经验教训 GraalVM Tracing Agent 收集到的信息可能不完整,所以依据这些信息编译出来的镜像运行时依然会报错,有时候需要手动补充 `reflectconfig.json`中的内容。 适配过程 1. fastjson 需要升级到 fastjson2 才支持 GraalVM,GraalVM 下不能用字节码做优化,走的是反射。 ```xml com.alibaba fastjson 2.0.22 ``` 2. pom.xml 中需要增加 `nativemavenplugin`这个插件并添加相应的配置 ...
March 30, 2023
摘要 作为下一代互联网协议,向 IPv6 迁移是未来的大势所趋。但由于当前互联网中 IPv4 协议的应用规模非常大,对于用户来说,没办法通过规定一个时间日期,从那一刻开始,所有互联网上的设备全部使用 IPv6,这是不现实的。一次性迁移不仅在基础设施层面不可行,对企业用户来说,就算基础设施都能准备完毕,让其将少则上百,多则成千上万的应用实例在一段时间内一次性停机进行协议栈迁移,无论是在风险上,还是成本上,对企业用户来说都是难以接受的!既然无法一步到位,渐进式的 IP 地址迁移成为当前的主流选择。本文将介绍一些主流渐进式的 IP 地址迁移方法。 背景 IPv4 协议(后文简称 IP...