news 2026/5/5 19:50:50

Spring Integration 轻松实现服务间消息传递,真香!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Integration 轻松实现服务间消息传递,真香!

👉这是一个或许对你有用的社群

🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:

  • 《项目实战(视频)》:从书中学,往事上“练”

  • 《互联网高频面试题》:面朝简历学习,春暖花开

  • 《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题

  • 《精进 Java 学习指南》:系统学习,互联网主流技术栈

  • 《必读 Java 源码专栏》:知其然,知其所以然

👉这是一个或许对你有用的开源项目

国产Star破10w的开源项目,前端包括管理后台、微信小程序,后端支持单体、微服务架构

RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERP、CRMAI大模型、IoT物联网等功能:

  • 多模块:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 微服务:https://gitee.com/zhijiantianya/yudao-cloud

  • 视频教程:https://doc.iocoder.cn

【国内首批】支持 JDK17/21+SpringBoot3、JDK8/11+Spring Boot2双版本

来源:码猿技术专栏

  • Spring Integration 基础概念

    • 起源

    • 基本概念

    • Spring Integration 与传统消息中间件的区别与联系

  • 消息通道与消息端点

    • 消息通道与消息端点

  • 消息处理器与适配器

    • 消息处理器与适配器在 Spring Integration 中的使用

  • 消息转换与路由在 Spring Integration 中的应用

    • 消息的格式转换与处理

    • 路由器的作用和实际应用场景

  • 集成模式与设计模式

    • Spring Integration 中常见的集成模式

    • 如何根据设计模式构建消息驱动的系统

  • Spring Integration中流程和通道拦截的实现方法

  • 实战


在当今分布式系统的背景下,如何优雅地实现系统之间的消息传递是每个开发者都关心的话题。

而Spring Integration,作为Spring家族的一员,正是为了解决这个难题而生。

在这篇文章中,我们将踏上穿越消息之路,深入探讨Spring Integration的魅力。

Spring Integration 基础概念

起源

Spring Integration 是 Spring 框架的一个重要扩展,其核心目标在于极大地简化企业集成模式的开发过程。它构建了一种基于消息的编程模型,让分布式系统中的系统集成变得更加轻松便捷。

基本概念

  • 消息:在 Spring Integration 的体系中,消息是信息传递的关键载体。它就像一个装满各种信息的“包裹”,不仅可以包含业务数据,还能携带头部信息、消息标签等内容。消息会沿着特定的通道(Channel)在系统中有序传递。

  • 通道(Channel):通道就像是消息在系统中流动的“高速公路”。Spring Integration 提供了多种不同类型的通道,例如直接通道(Direct Channel),它就像一条直达专线,能让消息快速高效地传递;发布 - 订阅通道(Publish - Subscribe Channel),类似于广播电台,可以将消息同时传递给多个订阅者;队列通道(Queue Channel),如同排队等待服务的队伍,消息会按照顺序依次进行处理。

  • 端点(Endpoint):端点是消息的生产者或者消费者,它们就像接力赛中的运动员,消息从一个端点传递到另一个端点,从而形成一个完整的消息处理流程。

  • 适配器(Adapter):适配器是 Spring Integration 与外部系统或者服务之间的“桥梁”。它能够将外部系统的消息“翻译”成 Spring Integration 能够理解的消息格式,也可以将 Spring Integration 的消息传递给外部系统。

  • 过滤器(Filter):过滤器就像是一个严格的“门卫”,只有满足特定条件的消息才能通过它的“检查”。它在消息的路由、转换等过程中发挥着重要作用。

  • 转换器(Transformer):转换器如同一个神奇的“魔法师”,能够将消息从一种形式转换为另一种形式,以满足系统的不同需求。它可以对数据格式进行转换,也可以修改消息体的内容。

Spring Integration 与传统消息中间件的区别与联系

区别
  • Spring Integration 是框架:Spring Integration 是基于 Spring 构建的一个强大框架,它提供了一整套用于构建企业集成模式的工具和组件,就像一个功能齐全的“工具箱”。

  • 传统消息中间件是产品:传统消息中间件通常是独立的产品,如 RabbitMQ、Apache Kafka、ActiveMQ 等,它们专注于提供可靠的消息传递服务,就像专业的“快递物流公司”。

联系
  • 整合性:Spring Integration 具有强大的整合能力,它可以与传统消息中间件完美集成。通过适配器,Spring Integration 能够与外部消息中间件进行通信,就像一个万能的“接口”,帮助企业集成系统与不同的消息中间件进行对接。

  • 解耦与异步通信:和传统消息中间件一样,Spring Integration 也支持解耦和异步通信的模式。通过消息的发布与订阅,系统组件之间可以实现解耦和松耦合,就像各个部门之间通过邮件进行沟通,彼此独立又能协同工作。

  • 消息传递:Spring Integration 和传统消息中间件都基于消息传递的模型。消息作为信息的载体,在系统中传递,实现不同组件之间的通信,就像信件在不同的收件人之间传递一样。

总体而言,Spring Integration 提供了一种更加轻量级和灵活的方式来实现企业集成,而传统消息中间件更专注于提供可靠的消息传递服务。在实际应用中,我们可以根据具体的需求选择合适的技术和工具。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

消息通道与消息端点

消息通道与消息端点

定义和配置消息通道
  • 定义消息通道:在 Spring Integration 中,消息通道是消息在系统中传递的关键“管道”。我们可以使用 XML 配置或者 Java 代码来定义消息通道。

    • XML 配置示例

<int:channel id="myChannel"/>
  • Java 配置示例

@Bean public MessageChannel myChannel() { return MessageChannels.direct().get(); }
  • 配置消息通道的类型:Spring Integration 提供了多种不同类型的消息通道,如直接通道(Direct Channel)、发布 - 订阅通道(Publish - Subscribe Channel)、队列通道(Queue Channel)等。我们可以根据实际需求选择合适的通道类型。

    • XML 配置示例

<!-- 配置直接通道 --> <int:channel id="directChannel"/> <!-- 配置发布 - 订阅通道 --> <int:publish-subscribe-channel id="publishSubscribeChannel"/> <!-- 配置队列通道 --> <int:queue-channel id="queueChannel"/>
  • Java 配置示例

  • 消息通道的属性配置:我们还可以通过配置消息通道的一些属性,如容量、过期时间等,来满足具体的需求。

    • XML 配置示例

<int:channel id="myChannel" capacity="10" />
  • Java 配置示例

@Bean public MessageChannel myChannel() { return MessageChannels.direct().capacity(10).get(); }
消息端点的作用和类型
  • 作用:消息端点是消息的生产者或者消费者,它定义了消息的处理逻辑。消息从一个端点流向另一个端点,形成一个完整的消息处理流程。

  • 消息端点的类型

    • 过滤器(Filter):用于过滤消息,只有满足特定条件的消息才能通过。它就像一个“筛子”,筛选出符合要求的消息。

    • 转换器(Transformer):用于将消息从一种形式转换为另一种形式。它就像一个“变形金刚”,将消息变成不同的形态。

    • 分发器(Dispatcher):用于将消息分发给不同的子通道,根据条件进行消息路由。它就像一个“交通指挥员”,根据不同的规则将消息引导到不同的方向。

    • 服务激活器(Service Activator):用于将消息传递给特定的服务进行处理。它就像一个“调度员”,将消息分配给合适的服务进行处理。

    • 消息处理器(Message Handler):用于处理消息,可以是一个 Java 方法、表达式、脚本等。它就像一个“工人”,负责对消息进行具体的处理。

    • 消息源(Message Source):用于产生消息的端点,例如文件输入、JDBC 查询等。它就像消息的“源头”,不断地产生新的消息。

    • 通道适配器(Channel Adapter):用于将外部系统的消息转换为 Spring Integration 的消息格式。它就像一个“翻译官”,帮助不同系统之间进行消息的“交流”。

    • 消息生产者端点

    • 消息消费者端点

    • 消息路由器端点

    • 其他类型

  • 配置消息端点:消息端点可以通过 XML 配置或者 Java 代码进行定义。

    • XML 配置示例

<int:service-activator input-channel="myChannel" ref="myService" method="processMessage"/>
  • Java 配置示例

@ServiceActivator(inputChannel = "myChannel") public void processMessage(Message<String> message) { // 处理消息的逻辑 }

通过合理定义和配置消息通道以及消息端点,我们可以构建出灵活、可扩展的消息传递系统,实现消息在系统中的高效流动和处理。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

消息处理器与适配器

消息处理器与适配器在 Spring Integration 中的使用

消息处理器的使用方法

消息处理器是 Spring Integration 中用于处理消息的核心组件,它可以是一个 Java 方法、表达式、脚本等。以下是消息处理器的使用方法:

  • Java 方法处理器

@ServiceActivator(inputChannel = "inputChannel") public void handleMessage(String message) { // 处理消息的逻辑 System.out.println("Received Message: " + message); }

在上述代码中,handleMessage方法是一个消息处理器,通过@ServiceActivator注解将其与名为inputChannel的输入通道关联起来。当消息被发送到该通道时,该方法会被调用来处理消息。

  • 表达式处理器

<int:service-activator input-channel="inputChannel" expression="@myService.process(#payload)"> <int:poller fixed-rate="1000"/> </int:service-activator>

在上述配置中,expression属性定义了一个表达式,指定了消息处理的逻辑。这个表达式将调用名为process的方法,#payload表示消息的载荷。

适配器与外部系统集成

适配器用于将外部系统的消息与 Spring Integration 进行集成,使得外部系统的消息能够在 Spring Integration 中流通。以下是适配器的使用方法:

  • 文件适配器

<int-file:inbound-channel-adapter id="filesIn" channel="inputChannel" directory="file:${java.io.tmpdir}/input"> <int:poller fixed-rate="5000"/> </int-file:inbound-channel-adapter>

上述配置使用文件适配器(<int-file:inbound-channel-adapter>)来监听指定目录中的文件,并将文件内容发送到名为inputChannel的通道。

  • JDBC 适配器

<int-jdbc:inbound-channel-adapter id="jdbcInboundAdapter" query="SELECT * FROM my_table" channel="inputChannel"> <int:poller fixed-rate="10000"/> </int-jdbc:inbound-channel-adapter>

上述配置中,JDBC 适配器(<int-jdbc:inbound-channel-adapter>)从数据库执行查询,并将结果发送到inputChannel通道。

  • HTTP 适配器

<int-http:inbound-channel-adapter id="httpInboundAdapter" channel="inputChannel" path="/receiveMessage" request-mapper="requestMapping"> <int:poller fixed-rate="10000"/> </int-http:inbound-channel-adapter>

上述配置使用 HTTP 适配器(<int-http:inbound-channel-adapter>)监听指定路径的 HTTP 请求,并将请求的消息发送到inputChannel通道。

以上示例展示了如何使用不同类型的适配器来与外部系统进行集成。适配器将外部系统的消息转换为 Spring Integration 的消息,并通过通道在整个系统中传递。适配器的配置取决于具体的集成需求和外部系统的特性。

消息转换与路由在 Spring Integration 中的应用

消息的格式转换与处理

消息转换是 Spring Integration 中常见的操作,用于将消息从一种格式或结构转换为另一种格式或结构,以满足系统的需求。以下是消息转换的实际应用场景和示例:

  • JSON 到对象的转换

@Transformer(inputChannel = "jsonInputChannel", outputChannel = "objectOutputChannel") public MyObject convertJsonToObject(String jsonString) { // 使用 Jackson 库将 JSON 字符串转换为 Java 对象 return objectMapper.readValue(jsonString, MyObject.class); }

在上述代码中,@Transformer注解表示这是一个消息转换器,它将jsonInputChannel通道的 JSON 消息转换为 Java 对象,并将结果发送到objectOutputChannel通道。

  • 对象到 JSON 的转换

@Transformer(inputChannel = "objectInputChannel", outputChannel = "jsonOutputChannel") public String convertObjectToJson(MyObject myObject) { // 使用 Jackson 库将 Java 对象转换为 JSON 字符串 return objectMapper.writeValueAsString(myObject); }

在这个例子中,消息转换器将objectInputChannel通道的 Java 对象转换为 JSON 字符串,并将结果发送到jsonOutputChannel通道。

路由器的作用和实际应用场景

路由器用于根据消息的内容或特征将消息路由到不同的通道,实现消息在系统中的分发。以下是路由器的实际应用场景和示例:

  • 内容路由器

<int:router input-channel="inputChannel" expression="payload.type"> <int:mapping value="A" channel="channelA"/> <int:mapping value="B" channel="channelB"/> <int:mapping value="C" channel="channelC"/> </int:router>

在上述配置中,内容路由器(<int:router>)根据消息的type属性的值将消息路由到不同的通道。如果消息的type是 "A",则路由到channelA;如果是 "B",则路由到channelB,以此类推。

  • 筛选器路由器

<int:router input-channel="inputChannel"> <int:mapping value="payload.type == 'A'" channel="channelA"/> <int:mapping value="payload.type == 'B'" channel="channelB"/> <int:mapping value="payload.type == 'C'" channel="channelC"/> </int:router>

在这个例子中,路由器根据筛选条件将消息路由到不同的通道。只有满足条件的消息才会被路由到相应的通道。

路由器的灵活性使得我们可以根据消息的内容、属性或条件进行动态的路由,从而实现系统中不同组件的消息处理逻辑的分离。路由器的配置可以根据具体的需求进行调整,以适应不同的应用场景。

集成模式与设计模式

Spring Integration 中常见的集成模式

Spring Integration 提供了许多常见的集成模式,这些模式能够帮助开发人员构建可靠、可扩展的消息驱动系统。以下是一些常见的集成模式:

  1. 消息通道(Message Channel):它定义了消息在系统中传递的路径,是消息传递的重要媒介,就像城市中的道路,消息沿着它在系统中流动。

  2. 消息端点(Message Endpoint):定义了消息的生产者或者消费者,可以是服务激活器、消息处理器等。它就像道路上的车站,负责消息的发送和接收。

  3. 消息适配器(Message Adapter):用于将外部系统的消息转换为 Spring Integration 的消息格式,实现系统与外部系统的集成。它就像一个翻译官,帮助不同语言的系统进行交流。

  4. 消息网关(Message Gateway):提供了对系统的入口,允许外部系统通过网关发送消息到系统中,或者从系统中获取消息。它就像系统的大门,控制着消息的进出。

  5. 消息转换器(Message Transformer):用于对消息的格式进行转换,将消息从一种表示形式转换为另一种,以满足系统的需求。它就像一个变形金刚,能把消息变成不同的样子。

  6. 消息过滤器(Message Filter):用于过滤消息,只有满足特定条件的消息才能通过,实现对消息的筛选。它就像一个筛子,把不符合要求的消息过滤掉。

  7. 消息路由器(Message Router):根据消息的内容、属性或条件将消息路由到不同的通道,实现消息的分发。它就像一个交通指挥员,根据不同的规则将消息引导到不同的方向。

  8. 聚合器(Aggregator):将多个相关的消息合并为一个消息,通常用于处理分散的消息片段。它就像一个拼图高手,把分散的消息碎片拼成完整的消息。

  9. 分裂器(Splitter):将一个消息拆分为多个消息,通常用于处理大块的消息内容。它就像一个切割工人,把大的消息切割成小块。

  10. 定时器(Timer):定期发送消息,用于实现定时任务或者轮询外部系统。它就像一个闹钟,定时提醒系统执行相应的操作。

如何根据设计模式构建消息驱动的系统

在构建消息驱动的系统时,我们可以借鉴一些设计模式来提高系统的可维护性、可扩展性和可测试性。以下是一些常用的设计模式,特别是在消息驱动系统中的应用:

  1. 发布 - 订阅模式(Publish - Subscribe Pattern):在消息驱动系统中,通过使用发布 - 订阅模式可以实现消息的广播,允许多个组件订阅并接收相同的消息。它就像一个广播电台,向多个听众同时发送消息。

  2. 观察者模式(Observer Pattern):观察者模式可以用于实现消息的订阅和通知机制,在消息产生时通知所有的观察者。它就像一个新闻发布系统,当有新闻发布时,会通知所有订阅的用户。

  3. 策略模式(Strategy Pattern):策略模式可用于实现灵活的消息处理策略,根据不同的需求选择不同的消息处理算法。它就像一个工具箱,根据不同的任务选择不同的工具。

  4. 装饰者模式(Decorator Pattern):装饰者模式可用于动态地添加消息处理逻辑,如消息转换器、消息过滤器等。它就像给消息穿上不同的衣服,增加不同的功能。

  5. 责任链模式(Chain of Responsibility Pattern):责任链模式可用于实现消息处理管道,每个处理器负责处理特定类型的消息,形成一个处理链。它就像一个流水线,每个工人负责完成特定的工序。

  6. .命令模式(Command Pattern):命令模式可以将消息封装为命令对象,以支持撤销、重做等操作。

  7. 工厂模式(Factory Pattern):工厂模式可用于创建消息适配器、消息处理器等组件,提供一种灵活的对象创建方式。

Spring Integration中流程和通道拦截的实现方法

在Spring Integration中,可以通过拦截器(Interceptor)来对消息通道和流程进行拦截和处理。拦截器允许在消息在通道中传递和处理的过程中执行自定义逻辑。

1. 通道拦截:

在通道级别,可以使用通道拦截器来对消息通道的发送和接收进行拦截。

<int:channel id="myChannel"> <int:interceptors> <int:wire-tap channel="logChannel"/> </int:interceptors> </int:channel>

上述配置中,<int:wire-tap>是一个通道拦截器,将通道上的所有消息发送到logChannel通道,以便记录日志或进行其他操作。

2. 流程拦截:

在流程级别,可以使用<int:advice><int:expression-advice>等元素来添加拦截器。

<int:service-activator input-channel="inputChannel" output-channel="outputChannel"> <int:advice-chain> <int:expression-advice expression="payload.toUpperCase()"/> </int:advice-chain> </int:service-activator>

在上述配置中,<int:expression-advice>是一个流程拦截器,它使用SpEL表达式将消息内容转换为大写。

拦截器的应用和自定义:

1. 内置拦截器的应用:

Spring Integration提供了一些内置的拦截器,如WireTapLoggingHandler等,用于实现常见的拦截需求。例如:

<int:channel id="inputChannel"> <int:interceptors> <int:wire-tap channel="logChannel"/> </int:interceptors> </int:channel>

上述配置中,使用了内置的WireTap拦截器,将通道上的所有消息发送到logChannel通道。

2. 自定义拦截器:

可以通过实现ChannelInterceptor接口或扩展ChannelInterceptorAdapter类来创建自定义的通道拦截器。同样,通过实现Advice接口或扩展AbstractRequestHandlerAdvice类可以创建自定义的流程拦截器。

<int:service-activator input-channel="inputChannel" output-channel="outputChannel"> <int:advice-chain> <bean class="com.example.CustomExpressionAdvice"/> </int:advice-chain> </int:service-activator>

上述配置中,使用了自定义的流程拦截器CustomExpressionAdvice,该类需实现Advice接口。

通过应用内置或自定义的拦截器,可以在消息处理的不同阶段执行自定义的逻辑,如日志记录、性能监控、消息转换等。

实战

传统订单处理流程往往涉及多个手动步骤,容易导致延迟和错误。为了提高电商平台的运作效率,客户那边要求我们开发一个自动化订单处理系统,从订单创建到支付、库存检查和发货全流程自动化处理,通过消息触发相关的业务逻辑,减少人为失误。

1.添加依赖:

2.启动类Application:

3.配置消息通道

/** * 配置消息通道 */ @Configuration publicclass IntegrationConfig { /** * 定义订单创建的消息通道 * @return DirectChannel 实例 */ @Bean public MessageChannel orderCreatedChannel() { returnnew DirectChannel(); } /** * 定义支付处理的消息通道 * @return DirectChannel 实例 */ @Bean public MessageChannel paymentProcessedChannel() { returnnew DirectChannel(); } /** * 定义库存检查的消息通道 * @return DirectChannel 实例 */ @Bean public MessageChannel inventoryCheckedChannel() { returnnew DirectChannel(); } /** * 定义发货调度的消息通道 * @return DirectChannel 实例 */ @Bean public MessageChannel shipmentScheduledChannel() { returnnew DirectChannel(); } }

4.Controller

5.订单服务

6.支付处理服务

7.库存检查服务

8.发货调度服务

9.订单处理相关的消息网关接口

10.测试

curl -X POST http://localhost:8080/orders \ -H "Content-Type: application/json" \ -d '{"orderId": "123", "productId": "P001", "quantity": 2}'

11.测试日志

Creating order: 123 Handling order creation for: 123 Processing payment for order: 123 Checking inventory for product: P001 Product is in stock. Scheduling shipment for order: 123 Shipment scheduled for order: 123

欢迎加入我的知识星球,全面提升技术能力。

👉 加入方式,长按”或“扫描”下方二维码噢

星球的内容包括:项目实战、面试招聘、源码解析、学习路线。

文章有帮助的话,在看,转发吧。 谢谢支持哟 (*^__^*)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 19:50:50

阿帕他胺联合ADT治疗:快速深度降低PSA,为疾病控制提供重要指标

前列腺特异性抗原&#xff08;PSA&#xff09;作为前列腺癌患者随访过程中的一个重要指标&#xff0c;能够反映肿瘤的进展程度和药物的治疗效果。在TITAN研究中&#xff0c;阿帕他胺联合ADT治疗在降低PSA水平方面表现出了快速、深度的特点&#xff0c;为疾病的控制提供了重要的…

作者头像 李华
网站建设 2026/5/5 19:50:50

XML验证:处理XML Schema命名空间问题

在开发过程中,常常会遇到XML文档需要验证其结构是否符合预期的XSD(XML Schema Definition)。然而,当涉及到命名空间的使用时,可能会出现一些验证错误。本文将通过一个实际案例,详细解析XML验证中常见的问题——命名空间声明的错误及其解决方法。 背景介绍 假设我们正在…

作者头像 李华
网站建设 2026/5/3 15:04:35

OpenAI开源GPT-OSS-120B/20B混合专家模型

OpenAI开源GPT-OSS-120B/20B混合专家模型 在大模型军备竞赛愈演愈烈的今天&#xff0c;一个反向信号悄然浮现&#xff1a;性能不再唯一&#xff0c;可控性与部署效率正成为新的制高点。当多数厂商还在堆叠参数、追逐榜单时&#xff0c;OpenAI却选择将一扇门推开——正式开源了两…

作者头像 李华
网站建设 2026/5/4 18:17:19

AI时代的巨头联姻,标志着开源“基金会与项目”的共生新时代开启

2025年12月10日在美国旧金山&#xff0c;全球人工智能产业迎来历史性转折点。OpenAI、Anthropic、谷歌、微软等超过30家全球领先的科技公司与研究机构&#xff0c;在Linux基金会旗下共同宣布成立 「Agentic AI基金会&#xff08;以下简称“AAIF”&#xff09;」。该组织旨在建立…

作者头像 李华
网站建设 2026/5/1 4:45:06

Qwen3-VL-30B GPU部署指南:显存优化实战

Qwen3-VL-30B GPU部署指南&#xff1a;显存优化实战 在一张10241024的医学影像前&#xff0c;AI要做的不只是“看图说话”——它得理解CT切片中的纹理特征、关联万字病历文本、推理出结节演变趋势&#xff0c;并用临床术语给出诊断建议。这正是 Qwen3-VL-30B 的日常任务。 但现…

作者头像 李华
网站建设 2026/5/4 12:10:44

Qwen3 Embedding模型部署指南:vLLM Ascend高效向量方案

Qwen3 Embedding模型部署指南&#xff1a;vLLM Ascend高效向量方案 在当前智能搜索、推荐系统与知识引擎快速演进的背景下&#xff0c;高质量文本嵌入&#xff08;Embedding&#xff09;已成为构建语义理解能力的核心环节。通义千问团队推出的 Qwen3 Embedding 系列模型&#x…

作者头像 李华