基于 Java 的消息队列选型年度总结:RabbitMQ、RocketMQ、Kafka 实战对比

基于 Java 的消息队列选型年度总结:RabbitMQ、RocketMQ、Kafka 实战对比
在这里插入图片描述


文章目录

基于 Java 的消息队列选型年度总结:RabbitMQ、RocketMQ、Kafka 实战对比 🚀


在当今高并发、分布式系统架构的浪潮中,消息队列(Message Queue, MQ)早已超越“可选中间件”的范畴,成为支撑系统高可用、高弹性、高扩展性的核心基础设施。它通过异步通信模式打破服务间的强依赖耦合,用缓冲队列实现流量削峰填谷,凭借可靠投递机制保障分布式事务一致性,更能通过异步解耦提升系统容错能力,为复杂分布式架构的稳定运行筑牢根基。

而在技术生态极为繁荣的 Java 领域,消息队列选型堪称“百花齐放”,其中 RabbitMQ、RocketMQ 与 Apache Kafka 凭借各自鲜明的技术优势、成熟的落地案例与完善的 Java 生态适配,牢牢占据主流选型榜单前三甲,成为 Java 开发者设计分布式系统时绕不开的核心选项。

本文将以“实战落地”为核心视角,从 架构设计原理、核心性能表现、可靠性保障机制、典型业务场景适配、Java 生态集成方案、运维部署成本、社区活跃度与技术支持、未来发展趋势 八大核心维度,对这三款主流消息队列展开全方位、立体化的深度对比。文中不仅会融入生产环境实测数据与问题排查经验,还将配套 可直接运行的 Java 代码示例、直观易懂的 Mermaid 架构流程图,并附上官方文档、权威技术白皮书等权威外部链接作为佐证,助力每一位 Java 开发者与架构师,在 2026 年的技术选型中精准匹配业务需求与技术栈特点,做出更科学、更具落地性的决策。🎯


一、为什么需要消息队列?🤔

在微服务或单体应用演进为分布式系统的过程中,直接调用(如 HTTP/RPC)会带来以下问题:

  • 强耦合:服务 A 必须知道服务 B 的地址和接口。
  • 同步阻塞:调用方需等待被调用方处理完成,影响响应时间。
  • 流量洪峰:突发请求可能导致下游服务崩溃。
  • 事务一致性难题:跨服务操作难以保证原子性。
  • 故障传播风险:一个服务的故障可能引发连锁反应。

而消息队列通过 异步通信 + 缓冲削峰 + 最终一致性 模式,有效解决上述痛点。

💡 典型应用场景:订单创建后异步发送邮件/短信日志收集与分析用户行为埋点上报分布式事务(如 Saga 模式)流式数据处理(如实时推荐)事件驱动架构(Event-Driven Architecture)数据管道(Data Pipeline)构建

二、三大消息队列详解 📚

在深入比较之前,让我们先对 RabbitMQ、RocketMQ 和 Apache Kafka 这三款主流消息队列的核心特性和设计理念有一个更全面的认识。

1. RabbitMQ

在这里插入图片描述

核心特点

  • 协议基础:RabbitMQ 是基于 AMQP 0.9.1 协议实现的,这是一个开放的、面向消息中间件的标准协议。该协议定义了消息传递的语义和机制。
  • 灵活性:其核心概念包括 Exchange(交换机)Queue(队列)Binding(绑定)。通过不同的 Exchange 类型(如 Direct、Fanout、Topic、Headers),可以实现灵活的消息路由策略。
  • 易用性:拥有强大的图形化管理界面(Management Plugin),方便开发者进行调试、监控和管理。
  • 成熟度:作为历史悠久的消息队列,拥有庞大的社区和丰富的文档资源。
  • 适用场景:非常适合需要复杂路由规则、中小型系统、或者对 AMQP 协议熟悉的团队。

主要优势

  • 路由灵活,支持多种 Exchange 类型。
  • 图形化管理界面直观易用。
  • 业界成熟,生态完善。
  • 适合任务队列、事件驱动等场景。

主要劣势

  • 吞吐量相对较低(万级 QPS)。
  • 集群模式下的高可用配置较为复杂。
  • 消息持久化性能不如 Kafka 和 RocketMQ。

2. RocketMQ

在这里插入图片描述

核心特点

  • 设计目标:由阿里巴巴内部研发,后捐献给 Apache。其设计目标是满足金融级应用对 高可用性、高吞吐量、顺序性和事务性 的极致要求。
  • 架构设计:采用主从(Master-Slave)结构,通过 NameServer 进行轻量级的集群协调。Broker 负责消息的存储和转发。
  • 核心概念:包含 Producer(生产者)Consumer(消费者)Broker(代理服务器)NameServer(命名服务)Topic(主题) 等。
  • 高可靠性:支持同步/异步刷盘、主从复制,确保消息不丢失。提供 事务消息顺序消息 的强大支持。
  • 性能表现:得益于其独特的存储模型(CommitLog + ConsumeQueue),在大规模并发场景下具有优异的性能表现。

主要优势

  • 高吞吐量(十万级 QPS)。
  • 金融级可靠性保障(事务消息、顺序消息、主从同步)。
  • 支持大规模分布式部署。
  • 优秀的顺序消息支持。
  • 事务消息机制成熟。

主要劣势

  • 相比 RabbitMQ,其生态和社区活跃度略低。
  • 配置和运维相对复杂。
  • 对 Java 应用依赖较强。

3. Apache Kafka

在这里插入图片描述

核心特点

  • 设计目标:Kafka 最初由 LinkedIn 开发,用于构建大规模实时数据管道和流处理应用。它被设计为 高吞吐量、高可扩展性、持久化 的日志系统。
  • 架构设计:采用 分布式、分区(Partition) 的设计思想。消息以 Topic 为单位组织,每个 Topic 可分为多个 Partition,分布在不同的 Broker 上。
  • 核心概念:包含 Producer(生产者)Consumer(消费者)Broker(代理服务器)Topic(主题)Partition(分区)Consumer Group(消费者组) 等。
  • 存储模型:消息以追加的方式写入磁盘,通过分段(Segment)和索引机制进行高效读取。支持配置保留策略(时间或大小)。
  • 流处理能力:Kafka Streams 和与 Apache Flink、Spark Streaming 等框架的集成,使其成为流处理生态系统的核心组件。

主要优势

  • 极高的吞吐量(百万级 QPS)。
  • 强大的水平扩展能力。
  • 高持久性,消息可长期保存。
  • 与大数据生态(Hadoop, Spark, Flink)无缝集成。
  • 适用于日志聚合、实时分析、事件溯源等场景。

主要劣势

  • 延迟相对较高(尤其是批量处理时)。
  • 不原生支持事务消息(需借助外部机制)。
  • 配置和管理相对复杂,尤其是在生产环境中。
  • 对顺序性的保证是基于 Partition,跨 Partition 顺序难以保证。

三、三大消息队列概览 📊

特性RabbitMQRocketMQKafka
开源协议Mozilla Public LicenseApache 2.0Apache 2.0
语言实现ErlangJavaScala + Java
主要定位通用消息中间件金融级高可靠消息高吞吐日志/流处理
消息模型AMQP(高级消息队列协议)自定义协议Pub/Sub + Partition
持久化支持(磁盘)支持(CommitLog)支持(Segment 文件)
吞吐量中等(万级 QPS)高(十万级 QPS)极高(百万级 QPS)
延迟低(毫秒级)低(毫秒级)中(批量写入)
顺序消息支持(单队列内)支持(全局/分区)支持(Partition 内)
事务消息✅(Confirm + Publisher Confirm)✅(Half Message)❌(仅幂等写入)
死信队列❌(需自行实现)
社区活跃度高(Pivotal/VMware 维护)高(阿里开源,Apache 顶级项目)极高(Confluent 商业支持)
商业支持企业版(VMware)企业版(阿里云)企业版(Confluent)
云原生支持✅(Kubernetes)✅(Strimzi)✅(Strimzi)
与 Spring 生态集成✅(Spring AMQP)✅(RocketMQ Spring Boot Starter)✅(Spring Kafka)
配置复杂度
🔗 官方文档参考:RabbitMQ 官网RocketMQ 官网Apache Kafka 官网Strimzi - Kafka on KubernetesKRaft - Kafka Without ZooKeeper

四、架构设计对比 🏗️

1. RabbitMQ 架构

RabbitMQ 基于 AMQP 0.9.1 协议,核心组件包括:

  • Producer:生产者
  • Exchange:交换机(Direct/Fanout/Topic/Headers)
  • Queue:队列(存储消息)
  • Binding:绑定规则(Exchange → Queue)
  • Consumer:消费者

Publish

Routing Key

Routing Key

Producer

Exchange

Queue 1

Queue 2

Consumer 1

Consumer 2

💬 RabbitMQ 的灵活性在于 Exchange 类型,可实现广播、路由、主题等多种模式。其管理界面直观,便于调试和监控。

2. RocketMQ 架构

RocketMQ 由阿里巴巴研发,后捐赠给 Apache,其架构强调 高可用 + 顺序 + 事务

  • NameServer:轻量级注册中心(无状态)
  • Broker:消息存储节点(Master/Slave)
  • Producer:生产者(支持集群)
  • Consumer:消费者(Push/Pull 模式)

Register

Send

Subscribe

Pull

NameServer 1

Broker Master

NameServer 2

Broker Slave

Producer

Consumer

🌟 RocketMQ 的 NameServer 无状态设计 使其易于横向扩展,且避免了 ZooKeeper 的复杂依赖。其 Master-Slave 模式提供了高可用性。RocketMQ 的设计充分考虑了金融级应用的需求。

3. Kafka 架构

Kafka 专为 高吞吐、持久化日志 设计,核心概念:

  • Topic:主题(逻辑分类)
  • Partition:分区(物理并行单元)
  • Producer:生产者(可指定 Partition)
  • Consumer Group:消费组(负载均衡)
  • ZooKeeper / KRaft:元数据管理(新版本已移除 ZK)

Write to

Producer

Topic

Partition 0

Partition 1

Partition 2

Consumer Group A

Consumer 1

Consumer 2

⚠️ 自 Kafka 2.8 起支持 KRaft 模式(Kafka Raft Metadata),不再强制依赖 ZooKeeper。
🔗 KRaft 模式官方说明KRaft (Kafka Raft Metadata) 是 Kafka 3.3+ 引入的一种新的元数据管理模式,它使用 Raft 协议替代了 ZooKeeper 来管理集群元数据,简化了部署和运维。

五、Java 集成实战 💻

我们将分别展示三种 MQ 在 Java 中的 生产者/消费者 实现,并附上 Maven 依赖。

1. RabbitMQ + Spring Boot 示例

Maven 依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

配置 application.yml

spring:rabbitmq:host: localhost port:5672username: guest password: guest 

生产者

@ServicepublicclassRabbitMQProducer{@AutowiredprivateRabbitTemplate rabbitTemplate;publicvoidsendMessage(String message){ rabbitTemplate.convertAndSend("order.exchange","order.create", message);System.out.println("✅ RabbitMQ 发送消息: "+ message);}}

消费者

@Component@RabbitListener(bindings =@QueueBinding( value =@Queue(value ="order.queue", durable ="true"), exchange =@Exchange(value ="order.exchange", type =ExchangeTypes.TOPIC), key ="order.create"))publicclassRabbitMQConsumer{@RabbitHandlerpublicvoidhandleMessage(String message){System.out.println("📩 RabbitMQ 接收消息: "+ message);// 处理业务逻辑}}
✅ 优势:Spring Boot 集成极简,注解驱动,适合中小型项目。支持多种交换机类型,路由灵活。

2. RocketMQ + Spring Boot 示例

Maven 依赖

<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.3</version></dependency>

配置 application.yml

rocketmq:name-server: localhost:9876producer:group: order-producer-group 

生产者

@ServicepublicclassRocketMQProducer{@AutowiredprivateRocketMQTemplate rocketMQTemplate;publicvoidsendMessage(String message){ rocketMQTemplate.convertAndSend("OrderTopic", message);System.out.println("🚀 RocketMQ 发送消息: "+ message);}// 发送顺序消息publicvoidsendOrderlyMessage(String orderId,String message){ rocketMQTemplate.setMessageQueueSelector((mqs, msg, arg)->{long id =Long.parseLong((String) arg);return mqs.get((int)(id % mqs.size()));}); rocketMQTemplate.syncSendOrderly("OrderTopic", message, orderId);}}

消费者

@Service@RocketMQMessageListener(topic ="OrderTopic", consumerGroup ="order-consumer-group")publicclassRocketMQConsumerimplementsRocketMQListener<String>{@OverridepublicvoidonMessage(String message){System.out.println("📬 RocketMQ 接收消息: "+ message);// 业务处理}}
✨ RocketMQ 的 顺序消息事务消息 支持非常完善,适合金融、电商等强一致性场景。其 RocketMQTemplate 提供了丰富的 API。

3. Kafka + Spring Boot 示例

Maven 依赖

<dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>

配置 application.yml

spring:kafka:bootstrap-servers: localhost:9092producer:key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer consumer:group-id: order-group auto-offset-reset: earliest key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.apache.kafka.common.serialization.StringDeserializer 

生产者

@ServicepublicclassKafkaProducer{@AutowiredprivateKafkaTemplate<String,String> kafkaTemplate;publicvoidsendMessage(String message){ kafkaTemplate.send("order-topic", message);System.out.println("🌊 Kafka 发送消息: "+ message);}// 指定 Partition 发送(用于顺序)publicvoidsendToPartition(String key,String message){ kafkaTemplate.send("order-topic", key, message);}}

消费者

@ComponentpublicclassKafkaConsumer{@KafkaListener(topics ="order-topic", groupId ="order-group")publicvoidlisten(String message){System.out.println("📥 Kafka 接收消息: "+ message);// 处理逻辑}}
📈 Kafka 的 批量发送 + 压缩 + 零拷贝 技术使其在日志、监控、流计算场景中无可替代。其与 Spring Kafka 的集成非常友好。

六、关键特性深度对比 🔍

1. 吞吐量与延迟

MQ单机吞吐(QPS)平均延迟适用场景
RabbitMQ1w ~ 5w< 10ms业务解耦、任务队列
RocketMQ10w ~ 50w< 10ms交易系统、订单流水
Kafka50w ~ 100w+10~100ms(批量)日志聚合、实时数仓
📌 实测建议:使用 JMeter 或自定义压测工具验证。Kafka 在大规模数据处理和高吞吐场景下表现尤为突出。

2. 可靠性与持久化

  • RabbitMQ:消息可持久化到磁盘,配合 Publisher ConfirmConsumer Ack 实现至少一次投递。支持镜像队列(Mirroring)提升可用性。
  • RocketMQ:基于 CommitLog + ConsumeQueue 的存储模型,支持同步/异步刷盘,金融级可靠。Master-Slave 模式提供高可用。
  • Kafka:消息写入 PageCache 后立即返回(可配置 acks=all),依赖副本机制保证不丢。默认是高吞吐的,牺牲了一定的实时性。
⚠️ 注意:“不丢消息” ≠ “不重复”,需结合业务幂等处理。

3. 顺序消息支持

  • RabbitMQ:单队列内天然有序,但无法跨队列保证。
  • RocketMQ:通过 MessageQueueSelector 将同一业务 ID 的消息路由到同一队列,实现全局顺序。
  • Kafka:同一 Partition 内有序,可通过 Key 控制路由。
// RocketMQ 顺序示例 rocketMQTemplate.syncSendOrderly("OrderTopic","Order_123_Paid","123"); rocketMQTemplate.syncSendOrderly("OrderTopic","Order_123_Shipped","123");// 保证 Order_123 的消息按顺序消费
📝 顺序消息对于金融交易、订单处理等场景至关重要,是衡量 MQ 可靠性的重要指标之一。

4. 事务消息(分布式事务)

RocketMQ 的 Half Message 机制 是目前最成熟的方案:

  1. Producer 发送 Half Message(对 Consumer 不可见)
  2. 执行本地事务
  3. 提交或回滚消息
// RocketMQ 事务消息TransactionMQProducer producer =newTransactionMQProducer("tx-group"); producer.setTransactionListener(newTransactionListener(){@OverridepublicLocalTransactionStateexecuteLocalTransaction(Message msg,Object arg){// 执行 DB 操作boolean success =updateOrderStatus();return success ?LocalTransactionState.COMMIT_MESSAGE :LocalTransactionState.ROLLBACK_MESSAGE;}@OverridepublicLocalTransactionStatecheckLocalTransaction(MessageExt msg){// 回查本地事务状态returnqueryOrderStatus()?LocalTransactionState.COMMIT_MESSAGE :LocalTransactionState.UNKNOW;}});
❌ Kafka 和 RabbitMQ 不原生支持事务消息,需借助 本地消息表 + 定时补偿 实现。RocketMQ 的事务机制是其核心优势之一。

5. 死信队列(DLQ)与重试机制

  • RabbitMQ:通过 x-dead-letter-exchange 自动转发失败消息。
  • RocketMQ:内置重试机制(最多 16 次),失败后进入 %DLQ% 队列。
  • Kafka:无 DLQ,需自行实现(如发送到 error topic)。
// RabbitMQ 死信配置(YAML 方式较复杂,通常用 Java Config)@BeanpublicQueueorderQueue(){returnQueueBuilder.durable("order.queue").withArgument("x-dead-letter-exchange","dlx.exchange").withArgument("x-message-ttl",10000)// 10秒过期.build();}
🔁 死信队列是处理异常消息、防止无限重试的重要手段。合理配置可以提高系统的健壮性。

七、运维与监控 🛠️

项目RabbitMQRocketMQKafka
管理界面✅(Management Plugin)✅(RocketMQ Dashboard)✅(Kafka Manager / Conduktor)
监控指标Prometheus + GrafanaPrometheus ExporterJMX + Prometheus
部署复杂度低(单机/集群)中(需 NameServer + Broker)高(ZK/KRaft + 多 Broker)
社区支持强(VMware 背书)强(阿里 + Apache)极强(Confluent + LinkedIn)
集群管理使用 RabbitMQ Management UI 或命令行工具使用 RocketMQ Console 或 Web UI使用 Kafka Manager 或 Conduktor
配置文件rabbitmq.confbroker.confserver.properties
证书与安全✅(SSL/TLS)✅(SSL/TLS)✅(SSL/TLS)
🔗 推荐监控方案:RabbitMQ Prometheus 插件RocketMQ ExporterKafka JMX Exporter

八、如何选型?📌

选 RabbitMQ 如果:

  • 系统规模中等,追求开发效率
  • 需要灵活的路由(Topic/Fanout)
  • 团队熟悉 AMQP 协议
  • 对吞吐要求不高(< 5w QPS)
  • 希望快速上手,有完善的图形化管理工具
  • 适用于轻量级、任务队列、事件驱动场景

选 RocketMQ 如果:

  • 金融、电商等强一致性场景
  • 需要事务消息、顺序消息
  • 国内部署,希望有中文文档和社区支持
  • 吞吐要求 10w~50w QPS
  • 对消息的可靠性、顺序性要求极高
  • 希望在大规模分布式系统中保持稳定性和高性能

选 Kafka 如果:

  • 日志收集、用户行为分析
  • 流处理(配合 Flink/Spark)
  • 超高吞吐(> 50w QPS)
  • 接受一定延迟,追求水平扩展
  • 需要构建大数据平台或实时数据湖
  • 作为数据管道(Data Pipeline)的核心组件
💡 混合架构建议
核心交易用 RocketMQ,日志分析用 Kafka,内部通知用 RabbitMQ —— 多 MQ 协同 是大型系统的常态。

九、常见陷阱与最佳实践 ⚠️

1. 消息堆积

  • 原因:消费者处理慢、宕机
  • 对策
    • RabbitMQ:增加消费者实例,优化消费逻辑
    • RocketMQ:扩容 Consumer Group,调整消费速率
    • Kafka:增加 Partition(注意顺序性破坏),优化消费者拉取速度

2. 重复消费

  • 根本原因:网络超时、ACK 丢失
  • 解决方案业务幂等(如数据库唯一索引、Redis Token)
// 幂等示例:订单支付publicvoidprocessPayment(String orderId){if(redis.setNx("pay:"+ orderId,"1",3600)){// 执行支付逻辑 log.info("订单 {} 支付成功", orderId);}else{ log.info("orderId {} 已处理,跳过", orderId);}}
🔄 重复消费是分布式系统中的常见问题,必须在业务层面做好幂等性设计。

3. 消息丢失

  • 检查点
    • Producer 是否开启确认机制?
    • Broker 是否持久化?
    • Consumer 是否手动 ACK?
    • 集群配置是否正确(如副本数)?

4. 内存溢出(OOM)

  • Kafka Producer 缓冲区过大
  • RabbitMQ 未设置 QoS(basicQos(1) 限制未 ACK 数量)
  • RocketMQ 消费者未及时处理消息导致积压
🧠 最佳实践:监控内存使用情况,设置合理的缓冲区大小和消费速率限制。

5. 性能瓶颈

  • 网络带宽:高吞吐场景下,网络是瓶颈之一。
  • 磁盘 IO:持久化消息对磁盘性能要求高。
  • CPU 资源:压缩、解压缩、序列化反序列化等操作消耗 CPU。
📊 监控指标:关注吞吐量、延迟、CPU、内存、磁盘 I/O 等关键指标。

十、未来趋势展望 🔮

  1. 云原生集成:三大 MQ 均提供 Kubernetes Operator(如 Strimzi for Kafka)。云原生部署已成为主流趋势。
  2. Serverless 消息:AWS SQS、阿里云 RocketMQ Serverless 降低运维成本,让开发者专注于业务逻辑。
  3. 流批一体:Kafka + Flink/Spark 成为实时数仓标配,支持复杂的流处理和批处理任务。
  4. 协议统一:AMQP vs MQTT vs 自定义协议,生态碎片化仍是挑战。未来可能会出现更通用的协议标准。
  5. AI 辅助运维:利用机器学习预测性能瓶颈、自动调优、智能告警将成为可能。

十一、结语 🎉

在高并发、分布式架构成为技术主流的今天,消息队列早已从“锦上添花”的辅助组件,蜕变为支撑系统稳定运行、业务高效流转的核心基石。而 RabbitMQ、RocketMQ、Apache Kafka 这三款主流中间件,也凭借各自差异化的设计理念与技术优势,在不同的业务场景中绽放光彩。

我们不难发现,这三款消息队列没有绝对的优劣之分,只有适配与否的区别:RabbitMQ 以灵活的路由机制和极低的上手门槛,成为中小型系统、任务队列场景的优选;RocketMQ 凭借金融级的可靠性、强大的事务与顺序消息能力,稳稳扛起电商、金融等核心交易系统的重任;Apache Kafka 则以百万级的超高吞吐量和与大数据生态的无缝集成,在日志聚合、实时流处理领域独占鳌头。

作为 Java 开发者与架构师,选型的关键从来不是盲目追逐“技术热门”,而是立足业务本质——厘清自身系统的吞吐需求、一致性要求、运维成本承受能力,再结合团队的技术栈熟悉度,才能做出最具性价比的决策。甚至在大型分布式系统中,多类消息队列协同作战的混合架构,也早已成为提升系统整体效能的常见方案。

希望本文的实战对比与深度分析,能为你 2026 年的技术选型之路提供一份清晰的参考。愿每一位开发者都能在技术与业务的平衡中,构建出更稳定、更强大的分布式系统!

记住:小而美 → RabbitMQ稳而强 → RocketMQ快而广 → Kafka

Read more

Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务

Elasticsearch核心概念与Java客户端实战 构建高性能搜索服务

目录 🎯 先说说我被ES"虐惨"的经历 ✨ 摘要 1. 为什么选择Elasticsearch? 1.1 从数据库的痛苦说起 1.2 Elasticsearch的优势 2. ES核心架构解析 2.1 集群架构 2.2 索引与分片 3. Java客户端实战 3.1 客户端选型对比 3.2 RestHighLevelClient配置 3.3 Spring Data Elasticsearch配置 4. 索引设计最佳实践 4.1 索引生命周期管理 4.2 映射设计技巧 5. 查询优化实战 5.1 查询类型对比 5.

By Ne0inhk
Tomcat安装及配置教程(保姆级)【最新史上最全版】

Tomcat安装及配置教程(保姆级)【最新史上最全版】

Tomcat安装教程 (以tomcat-9.0.62为例:) 1.下载安装包 可以从官网下载安装包: (1)从官网下载 输入网址进入官网 选择版本10,版本9,或者版本8,都可以,这里下载的版本9 不想去官网的直接百度网盘自提: 链接:https://pan.baidu.com/s/1_wWx48RVn_BSk3eXneAZYw?pwd=aijy 提取码:aijy 选择下载64-Bit Windows zip(Win64),根据电脑版本选择(目前大多数笔记本电脑都是64位滴) (2)选择解压路径 解压到电脑其中一个文件夹,记住解压路径 2.配置环境变量 (1)打开高级设置 电脑-属性-高级系统设置 (2)点击高级系统设置-环境变量-新建系统变量 (3)新建系统变量,变量名为CATALINA_HOME

By Ne0inhk
Java 大视界 -- 实战|Java + Elasticsearch 电商搜索系统:分词优化与千万级 QPS 性能调优(439)

Java 大视界 -- 实战|Java + Elasticsearch 电商搜索系统:分词优化与千万级 QPS 性能调优(439)

Java 大视界 -- 实战|Java + Elasticsearch 电商搜索系统:分词优化与千万级 QPS 性能调优(439) * 引言: * 正文: * 一、 项目概述与技术选型 * 1.1 项目核心价值 * 1.2 核心技术选型(基于官方稳定版本,无兼容性风险) * 1.2.1 技术栈明细(附官方出处) * 1.2.2 选型核心原则(实战验证,规避坑点) * 1.3 系统核心架构 * 1.3.1 架构分层说明 * 二、 核心实体设计与环境准备 * 2.1 核心实体设计(贴合母婴业务,字段精准选型) * 2.1.

By Ne0inhk
基于Rokid灵珠AI平台的春节全能助手智能体开发实践

基于Rokid灵珠AI平台的春节全能助手智能体开发实践

前言 本次开发基于Rokid灵珠AI平台,聚焦春节高频的抢票出行、路线规划、年货比价核心场景,搭建轻量化春节全能助手智能体,通过平台可视化工作流编排实现功能逻辑串联;因无Rokid Glasses实物,智能体完成灵珠平台内对话测试验证,眼镜端适配仅编写伪代码实现逻辑预留,整体开发聚焦平台核心的智能体配置与工作流开发能力,实现低门槛、高适配的春节场景AI应用落地。 一、开发背景与需求分析 春节期间抢票、年货采购、出行路线规划是用户核心需求,依托Rokid灵珠AI平台零门槛、全栈化的开发特性,无需复杂编码即可完成智能体与工作流的搭建,同时平台支持与Rokid Glasses硬件生态的深度集成,为后续眼镜端落地预留适配接口;本次开发核心实现三大功能:12306高铁票查询、春节自驾路线规划、年货好物低价推荐,所有功能通过灵珠平台智能体统一承接,工作流分别处理具体业务逻辑,满足用户春节出行与采购的一站式需求。 二、开发环境与平台核心能力依托 1. 开发平台:Rokid灵珠AI平台 2. 核心工具:平台智能体创建(提示词编辑、人设配置、对话调试)、工作流编排(节点添加、逻辑串联、

By Ne0inhk