May 24, 2024

    使用 Spring Cloud Alibaba AI 构建 RAG 应用

    背景介绍 RAG(Retrieval Augmented Generation) 检索增强生成(RAG)是一种用于将数据与人工智能模型集成的技术。在 RAG 工作流程中,第一步将文档数据加载到矢量数据库(例如 Redis)中。当收到用户查询时,矢量数据库会检索一组与该查询相似的文档。然后,这些文档数据充当用户问题的上下文,并与用户的查询结合使用生成响应(通常通过 LLM 模型)。 在此示例中,我们将使用包含啤酒信息的数据集,包括名称、酒精体积 (ABV)、国际苦度单位 (IBU) 等属性以及每种啤酒的描述。该数据集将加载到 Redis 中,之后通过 Spring Cloud Ali...
    阅读文章

    May 9, 2024

    快速体验 Spring Cloud Alibaba AI

    快速体验 Spring Cloud Alibaba AI 旨在简化包含人工智能相关功能的应用程序的开发,避免不必要的复杂性。 Spring AI 的核心是提供抽象,作为开发 AI 应用程序的基础。这些抽象有多种实现方式,只需极少的代码改动即可轻松实现各个大模型之间的切换。 Spring AI 提供以下功能: 支持所有主要模型提供商,例如 OpenAI、Microsoft、Amazon、Google 和 Huggingface。 支持的模型类型包括“聊天”和“文本到图像”,还有更多模型类型正在开发中。 跨 AI 提供商的可移植 API,用于聊天和嵌入模型。支持同步和流 API...
    阅读文章

    January 27, 2024

    Graalvm 元数据适配

    本文章主要叙述在 Java 应用适配 Graalvm Native Image 中的步骤和遇到的一些问题!因为 Graalvm 官方文档相关概念叙述过于简单。基本靠问才能知道些许有用信息。所以写此文章。 关于 Graalvm 基础知识的相关学习,可以参照 Seata 社区 commiter 王良的 ,本文章主要介绍元数据适配。不对 Graalvm 基础做过多介绍。 Graalvm 现状介绍 GraalVM:是一种高性能运行时,可显着提高应用程序性能和效率,是微服务的理想选择。它专为使用 Java、JavaScript、基于 LLVM 的语言(例如 C 和 C++)以及其他动态语言编写...
    阅读文章

    January 27, 2024

    RocketMQ Graalvm 适配

    GitHub issue 参见: 经验教训 GraalVM Tracing Agent 收集到的信息可能不完整,所以依据这些信息编译出来的镜像运行时依然会报错,有时候需要手动补充 `reflectconfig.json`中的内容。 适配过程 1. fastjson 需要升级到 fastjson2 才支持 GraalVM,GraalVM 下不能用字节码做优化,走的是反射。 ```xml com.alibaba fastjson 2.0.22 ``` 2. pom.xml 中需要增加 `nativemavenplugin`这个插件并添加相应的配置 ...
    阅读文章

    January 27, 2024

    Spring Cloud Alibaba 最佳实践

    Spring Cloud Alibaba项目简介 Spring Cloud Alibaba(下文简称为SCA) 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 SCA,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。 项目最佳实践案例介绍 SCA的项目的最佳实践,是整合了SCA相关组件(Nacos,Sentinel,Seata,RocketMQ)的Example示例项...
    阅读文章

    November 7, 2023

    Spring Boot 单体应用升级 Spring Cloud 微服务最佳实践

    Spring Boot 单体应用升级 Spring Cloud 微服务 通过以下示例,我们完整的演示了一个 Spring Boot 架构的单体应用集群,如何平滑的升级为一个 Spring Cloud 微服务集群,本文章包含源码、讲解、原理说明。 本示例完整源码,请参见 升级指南、版本选择、注意事项等,请参见 1. 原始 Spring Boot 应用架构 在示例中,我们有如下基于 Spring Boot 开发的应用架构: 我们这里列出来的只是一种示例架构。基于 Spring Boot 构建的应用架构变化多样,比如可能如下一些常用的架构,但不论哪种架构,升级 Spring ...
    阅读文章

    August 31, 2023

    基于网关实现 Spring Cloud 服务发现与路由

    基于 Higress 网关实现 Spring Cloud 服务发现与路由 使用 Nacos 做注册中心 应用配置具体参考 进行应用配置 不指定命名空间 如果 `application.properties` 中没有指定 Nacos 命名空间,例如: ```properties server.port=8080 spring.application.name=myservice spring.cloud.nacos.discovery.serveraddr=127.0.0.1:8848 ``` 则 Higress 的 McpBridge 中亦无需指定命名空间: ```y...
    阅读文章

    August 21, 2023

    Spring Cloud Alibaba 应用灰度发布实践

    摘要 Higress 是阿里巴巴开源的一款下一代云原生微服务网关。Higress 可以对接多种注册中心,包括 Nacos/Zookeeper/Eureka 等,能够无缝集成 Spring Cloud 应用,对 Dubbo/Sentinel/OpenSergo 等微服务生态也有着深度的集成。与此同时,Higress 采用 C++ 内核,相比于传统的 Java 网关来说性能更高,更稳定,对比 Spring Cloud Gateway 和 Zuul 来说,性能可以提升至 24 倍。另外,Higress 还天然兼容 K8s 的 Ingress/Gateway API 标准,是一款更符合云原生时代...
    阅读文章

    March 30, 2023

    应用如何平滑迁移至IPv6?

    摘要 作为下一代互联网协议,向 IPv6 迁移是未来的大势所趋。但由于当前互联网中 IPv4 协议的应用规模非常大,对于用户来说,没办法通过规定一个时间日期,从那一刻开始,所有互联网上的设备全部使用 IPv6,这是不现实的。一次性迁移不仅在基础设施层面不可行,对企业用户来说,就算基础设施都能准备完毕,让其将少则上百,多则成千上万的应用实例在一段时间内一次性停机进行协议栈迁移,无论是在风险上,还是成本上,对企业用户来说都是难以接受的!既然无法一步到位,渐进式的 IP 地址迁移成为当前的主流选择。本文将介绍一些主流渐进式的 IP 地址迁移方法。 背景 IPv4 协议(后文简称 IP...
    阅读文章