当前位置: 首页 > news >正文

三大消息队列技术对比与应用指南

Kafka、RabbitMQ与ActiveMQ对比与使用场景

消息队列(MQ)是分布式系统中重要的中间件,用于解耦生产者和消费者、异步处理、流量削峰等场景。Kafka、RabbitMQ和ActiveMQ是三种主流消息队列技术,各自有不同的设计目标和适用场景。

Kafka:高吞吐分布式流平台

Kafka设计初衷是处理高吞吐量的日志和数据流,采用分布式架构,支持水平扩展。其核心特性包括分区(Partition)、副本(Replica)和消费者组(Consumer Group)。

Kafka的Producer示例(Java):

Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); Producer<String, String> producer = new KafkaProducer<>(props); ProducerRecord<String, String> record = new ProducerRecord<>("test-topic", "key", "value"); producer.send(record); producer.close();

Kafka的Consumer示例(Java):

Properties props = new Properties(); props.put("bootstrap.servers", "localhost:9092"); props.put("group.id", "test-group"); props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props); consumer.subscribe(Collections.singletonList("test-topic")); while (true) { ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100)); for (ConsumerRecord<String, String> record : records) { System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value()); } }
RabbitMQ:灵活的企业级消息代理

RabbitMQ实现了AMQP协议,支持多种消息模式(点对点、发布/订阅等)。其核心概念包括Exchange、Queue和Binding。

RabbitMQ生产者示例(Python):

import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_publish(exchange='', routing_key='hello', body='Hello World!') print(" [x] Sent 'Hello World!'") connection.close()

RabbitMQ消费者示例(Python):

import pika def callback(ch, method, properties, body): print(f" [x] Received {body}") connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() channel.queue_declare(queue='hello') channel.basic_consume(queue='hello', auto_ack=True, on_message_callback=callback) print(' [*] Waiting for messages. To exit press CTRL+C') channel.start_consuming()
ActiveMQ:成熟的开源消息中间件

ActiveMQ是Apache下的开源项目,支持JMS规范,适合Java企业应用集成。它提供持久化、事务、集群等功能。

ActiveMQ生产者示例(Java):

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("TEST.QUEUE"); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage("Hello ActiveMQ!"); producer.send(message); connection.close();

ActiveMQ消费者示例(Java):

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("TEST.QUEUE"); MessageConsumer consumer = session.createConsumer(destination); Message message = consumer.receive(); if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; System.out.println("Received: " + textMessage.getText()); } connection.close();

技术特性对比

消息传递模型
  • Kafka:基于分区和偏移量的持久化日志
  • RabbitMQ:基于Exchange和Queue的路由
  • ActiveMQ:基于JMS规范的点对点和发布/订阅
吞吐量与延迟
  • Kafka:高吞吐(百万级/秒),较高延迟(毫秒级)
  • RabbitMQ:中等吞吐(万级/秒),低延迟(微秒级)
  • ActiveMQ:中等吞吐(万级/秒),中等延迟(毫秒级)
消息持久化
  • Kafka:默认持久化,可配置保留时间
  • RabbitMQ:可配置持久化队列和消息
  • ActiveMQ:支持持久化和非持久化消息
协议支持
  • Kafka:自定义协议
  • RabbitMQ:AMQP、STOMP、MQTT等
  • ActiveMQ:JMS、AMQP、STOMP、MQTT等

适用场景分析

Kafka最佳场景
  1. 日志收集和分析
  2. 流式数据处理
  3. 高吞吐事件源
  4. 消息回溯场景
RabbitMQ最佳场景
  1. 企业应用集成
  2. 需要复杂路由的场景
  3. 对延迟敏感的应用
  4. 需要多种协议支持的环境
ActiveMQ最佳场景
  1. Java EE应用集成
  2. 需要JMS规范支持的系统
  3. 传统企业消息系统迁移
  4. 需要多种协议支持的Java环境

集群与高可用方案

Kafka集群
  • 基于ZooKeeper的集群协调
  • 分区副本机制保证高可用
  • 支持跨数据中心镜像

配置示例:

# server.properties broker.id=1 listeners=PLAINTEXT://:9092 log.dirs=/tmp/kafka-logs num.partitions=3 default.replication.factor=2
RabbitMQ集群
  • 基于Erlang OTP的集群
  • 镜像队列保证高可用
  • 支持Federation和Shovel

集群配置命令:

# 节点加入集群 rabbitmqctl stop_app rabbitmqctl join_cluster rabbit@node1 rabbitmqctl start_app
ActiveMQ集群
  • 基于ZooKeeper的主从选举
  • Network of Brokers架构
  • 共享存储高可用方案

配置示例(activemq.xml):

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="broker1" dataDirectory="${activemq.data}"> <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> <transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> </transportConnectors> <networkConnectors> < 真正的勇气在于面对困惑时的微笑,不怕未知,让内心的坚定信念指引我们走向光明的未来。每份努力都值得珍惜,无论结果如何,过程才是最珍贵的,让心灵在不断追求中成长。生命的强大源于经历的丰富与内心的坚韧,每一次挑战都能让我成长为更好的自己。生活的每一个瞬间都是独特的旅程,鼓励与支持他人,即是给予自己内心一份温暖的关怀。每一份努力都是未来的铺垫,愿我们在通往理想的旅途中坚信梦想,让生命愈加精彩! https://blog.csdn.net/mgfx9nti/article/details/159161346 https://blog.csdn.net/c2do0u1t/article/details/159161348 https://blog.csdn.net/ol6gpxs6/article/details/159161350 https://blog.csdn.net/mc8n62vs/article/details/159161354 https://blog.csdn.net/m6cyggyy/article/details/159161355 https://blog.csdn.net/xvde9zf7/article/details/159161357 https://blog.csdn.net/2601_95543733/article/details/159161358 https://blog.csdn.net/2601_95543768/article/details/159161359 https://blog.csdn.net/f7sovumh/article/details/159161362 https://blog.csdn.net/2601_95555318/article/details/159161366 https://blog.csdn.net/glz4zfpc/article/details/159161368 https://blog.csdn.net/ond57was/article/details/159161370 https://blog.csdn.net/r8dw00af/article/details/159161371 https://blog.csdn.net/2601_95543726/article/details/159161372 https://blog.csdn.net/koc2trfj/article/details/159161373 https://blog.csdn.net/2601_95555299/article/details/159161374 https://blog.csdn.net/2601_95543731/article/details/159161376 https://blog.csdn.net/oytonlt9/article/details/159161377 https://blog.csdn.net/wwabsgdg/article/details/159161378 https://blog.csdn.net/v4r7ty80/article/details/159161386 https://blog.csdn.net/2601_95543722/article/details/159161388 https://blog.csdn.net/ncimi2ja/article/details/159161387 https://blog.csdn.net/lp03l0r8/article/details/159161393 https://blog.csdn.net/tnzmhkur/article/details/159161394 https://blog.csdn.net/s7yorjmj/article/details/159161396 https://blog.csdn.net/ibenzdmo/article/details/159161395 https://blog.csdn.net/v07ssrlr/article/details/159161400 https://blog.csdn.net/qacm2krr/article/details/159161398 https://blog.csdn.net/2601_95555287/article/details/159161409 https://blog.csdn.net/2601_95543766/article/details/159161407 https://blog.csdn.net/sbybixr8/article/details/159161408 https://blog.csdn.net/2601_95543843/article/details/159161410 https://blog.csdn.net/2601_95543780/article/details/159161415 https://blog.csdn.net/r26icsij/article/details/159161418 https://blog.csdn.net/a4y9n4ct/article/details/159161421 https://blog.csdn.net/2601_95555317/article/details/159161420 https://blog.csdn.net/n02zcgbo/article/details/159161422 https://blog.csdn.net/rc4rn5pz/article/details/159161424 https://blog.csdn.net/2601_95543791/article/details/159161423 https://blog.csdn.net/2601_95555314/article/details/159161425 https://blog.csdn.net/ijgom5nj/article/details/159161426 https://blog.csdn.net/xcmpf0zt/article/details/159161428 https://blog.csdn.net/lnwxed85/article/details/159161430 https://blog.csdn.net/y27lf32s/article/details/159161433 https://blog.csdn.net/n9tgndxg/article/details/159161435 https://blog.csdn.net/2601_95543800/article/details/159161436 https://blog.csdn.net/gv7zpnnn/article/details/159161432 https://blog.csdn.net/r306g9ac/article/details/159161438 https://blog.csdn.net/2601_95543821/article/details/159161439 https://blog.csdn.net/ffeyk29m/article/details/159161441 https://blog.csdn.net/vi9thqox/article/details/159161443 https://blog.csdn.net/ofzp007l/article/details/159161444 https://blog.csdn.net/pxp20r88/article/details/159161447 https://blog.csdn.net/poh567gd/article/details/159161448 https://blog.csdn.net/t5i2r0v3/article/details/159161452 https://blog.csdn.net/mftj1rmm/article/details/159161455 https://blog.csdn.net/k7610xmo/article/details/159161454 https://blog.csdn.net/zz12zx9n/article/details/159161460 https://blog.csdn.net/f0kq1phn/article/details/159161462 https://blog.csdn.net/py8p75b8/article/details/159161463 https://blog.csdn.net/lz0n6gd2/article/details/159161467 https://blog.csdn.net/wq9evnh3/article/details/159161473 https://blog.csdn.net/2601_95543764/article/details/159161477 https://blog.csdn.net/bwmcy7fm/article/details/159161478 https://blog.csdn.net/2601_95543828/article/details/159161479 https://blog.csdn.net/rg28a6hh/article/details/159161475 https://blog.csdn.net/zzo6gm62/article/details/159161481 https://blog.csdn.net/c0vhp37g/article/details/159161482 https://blog.csdn.net/2601_95543826/article/details/159161483 https://blog.csdn.net/2601_95555316/article/details/159161485 https://blog.csdn.net/lmir2d17/article/details/159161490 https://blog.csdn.net/k85yepcg/article/details/159161492 https://blog.csdn.net/m6cyggyy/article/details/159161497 https://blog.csdn.net/ofzp007l/article/details/159161501 https://blog.csdn.net/r26icsij/article/details/159161503 https://blog.csdn.net/2601_95543771/article/details/159161507 https://blog.csdn.net/2601_95543761/article/details/159161516 https://blog.csdn.net/2601_95543755/article/details/159161517 https://blog.csdn.net/2601_95555323/article/details/159161519 https://blog.csdn.net/c2do0u1t/article/details/159161520 https://blog.csdn.net/2601_95555308/article/details/159161521 https://blog.csdn.net/xvde9zf7/article/details/159161522 https://blog.csdn.net/2601_95543768/article/details/159161526 https://blog.csdn.net/ql0jt5es/article/details/159161528 https://blog.csdn.net/v4r7ty80/article/details/159161529 https://blog.csdn.net/2601_95543780/article/details/159161532 https://blog.csdn.net/2601_95555299/article/details/159161530 https://blog.csdn.net/lnwxed85/article/details/159161536 https://blog.csdn.net/tnzmhkur/article/details/159161537 https://blog.csdn.net/rc4rn5pz/article/details/159161538 https://blog.csdn.net/v07ssrlr/article/details/159161542 https://blog.csdn.net/f0kq1phn/article/details/159161547 https://blog.csdn.net/py8p75b8/article/details/159161549 https://blog.csdn.net/oytonlt9/article/details/159161551 https://blog.csdn.net/zz12zx9n/article/details/159161552 https://blog.csdn.net/y27lf32s/article/details/159161555 https://blog.csdn.net/lz0n6gd2/article/details/159161557 https://blog.csdn.net/koc2trfj/article/details/159161561 https://blog.csdn.net/2601_95543843/article/details/159161559 https://blog.csdn.net/f7qpzrq6/article/details/159161563 https://blog.csdn.net/c0vhp37g/article/details/159161562 https://blog.csdn.net/2601_95543726/article/details/159161566 https://blog.csdn.net/r8dw00af/article/details/159161569 https://blog.csdn.net/2601_95543733/article/details/159161570 https://blog.csdn.net/n02zcgbo/article/details/159161574 https://blog.csdn.net/gv7zpnnn/article/details/159161576 https://blog.csdn.net/a4y9n4ct/article/details/159161577 https://blog.csdn.net/wwabsgdg/article/details/159161579 https://blog.csdn.net/2601_95543779/article/details/159161580 https://blog.csdn.net/2601_95555317/article/details/159161582 https://blog.csdn.net/2601_95555287/article/details/159161583 https://blog.csdn.net/2601_95543718/article/details/159161584 https://blog.csdn.net/ibenzdmo/article/details/159161587 https://blog.csdn.net/glz4zfpc/article/details/159161588 https://blog.csdn.net/xcmpf0zt/article/details/159161592 https://blog.csdn.net/ol6gpxs6/article/details/159161593 https://blog.csdn.net/2601_95543722/article/details/159161594 https://blog.csdn.net/2601_95543821/article/details/159161596 https://blog.csdn.net/2601_95543826/article/details/159161595 https://blog.csdn.net/r306g9ac/article/details/159161598 https://blog.csdn.net/t5i2r0v3/article/details/159161603 https://blog.csdn.net/n9tgndxg/article/details/159161604 https://blog.csdn.net/i4pepl1d/article/details/159161605 https://blog.csdn.net/2601_95555316/article/details/159161608 https://blog.csdn.net/pxp20r88/article/details/159161609 https://blog.csdn.net/dfcvz685/article/details/159161616 https://blog.csdn.net/tfpsg2zl/article/details/159161612 https://blog.csdn.net/mc8n62vs/article/details/159161622 https://blog.csdn.net/k85yepcg/article/details/159161624 https://blog.csdn.net/ycxewsul/article/details/159161625 https://blog.csdn.net/wq9evnh3/article/details/159161629 https://blog.csdn.net/lmir2d17/article/details/159161631 https://blog.csdn.net/lp03l0r8/article/details/159161636 https://blog.csdn.net/2601_95543764/article/details/159161637 https://blog.csdn.net/ncimi2ja/article/details/159161633 https://blog.csdn.net/poh567gd/article/details/159161640 https://blog.csdn.net/2601_95543828/article/details/159161644 https://blog.csdn.net/2601_95543771/article/details/159161645 https://blog.csdn.net/s7yorjmj/article/details/159161651 https://blog.csdn.net/wh2d8soe/article/details/159161689 https://blog.csdn.net/2601_95544164/article/details/159161691 https://blog.csdn.net/rn7ipx1w/article/details/159161695 https://blog.csdn.net/nryzt5bz/article/details/159161696 https://blog.csdn.net/rjo298en/article/details/159161698 https://blog.csdn.net/kwus3wtw/article/details/159161699 https://blog.csdn.net/pti47tuy/article/details/159161715 https://blog.csdn.net/o9ukk0b7/article/details/159161730 https://blog.csdn.net/oqwhzqg6/article/details/159161732 https://blog.csdn.net/vywfueu6/article/details/159161735 https://blog.csdn.net/pbyli8m8/article/details/159161741 https://blog.csdn.net/b3u4ouqf/article/details/159161742 https://blog.csdn.net/wzq6c1d6/article/details/159161743 https://blog.csdn.net/v9vvwzsc/article/details/159161744 https://blog.csdn.net/2601_95544138/article/details/159161746 https://blog.csdn.net/njya841u/article/details/159161748 https://blog.csdn.net/b68douba/article/details/159161750 https://blog.csdn.net/kgoubjv5/article/details/159161751 https://blog.csdn.net/ot6hq6nf/article/details/159161752 https://blog.csdn.net/jm6bgxkp/article/details/159161754 https://blog.csdn.net/hz335jx4/article/details/159161759 https://blog.csdn.net/xzkkfd11/article/details/159161761 https://blog.csdn.net/v3n18rtk/article/details/159161762 https://blog.csdn.net/ooggj3zp/article/details/159161766 https://blog.csdn.net/2601_95555416/article/details/159161767 https://blog.csdn.net/2601_95555428/article/details/159161770 https://blog.csdn.net/qafq81em/article/details/159161769 https://blog.csdn.net/he3gnhm6/article/details/159161768 https://blog.csdn.net/2601_95544175/article/details/159161775 https://blog.csdn.net/bpneufdg/article/details/159161773 https://blog.csdn.net/2601_95544149/article/details/159161777 https://blog.csdn.net/n2x72jzi/article/details/159161778 https://blog.csdn.net/e3n4424y/article/details/159161780 https://blog.csdn.net/dy12tmrf/article/details/159161782 https://blog.csdn.net/g0fmhue9/article/details/159161784 https://blog.csdn.net/ysgvdst2/article/details/159161785 https://blog.csdn.net/s0zymiq0/article/details/159161786 https://blog.csdn.net/iua1h1vt/article/details/159161790 https://blog.csdn.net/2601_95544113/article/details/159161791 https://blog.csdn.net/p38ls0ag/article/details/159161792 https://blog.csdn.net/nryzt5bz/article/details/159161796 https://blog.csdn.net/2601_95555422/article/details/159161797 https://blog.csdn.net/qbnd6lds/article/details/159161799 https://blog.csdn.net/2601_95544164/article/details/159161801 https://blog.csdn.net/vxrxlflk/article/details/159161802 https://blog.csdn.net/sqob3rfk/article/details/159161803 https://blog.csdn.net/ckzm3fuk/article/details/159161804 https://blog.csdn.net/2601_95544206/article/details/159161805 https://blog.csdn.net/rn7ipx1w/article/details/159161813 https://blog.csdn.net/zwi1y625/article/details/159161798 https://blog.csdn.net/fo3atnop/article/details/159161812 https://blog.csdn.net/rjo298en/article/details/159161814 https://blog.csdn.net/wh2d8soe/article/details/159161817 https://blog.csdn.net/2601_95555421/article/details/159161810 https://blog.csdn.net/bgluenl8/article/details/159161823 https://blog.csdn.net/w3e2ztnx/article/details/159161820 https://blog.csdn.net/kwus3wtw/article/details/159161824 https://blog.csdn.net/kjtnfh5v/article/details/159161825 https://blog.csdn.net/dskkjon0/article/details/159161826 https://blog.csdn.net/ctnjyt7k/article/details/159161828 https://blog.csdn.net/ki78qojd/article/details/159161811 https://blog.csdn.net/vdp8kn2a/article/details/159161831 https://blog.csdn.net/2601_95544173/article/details/159161833 https://blog.csdn.net/x56qi673/article/details/159161835 https://blog.csdn.net/2601_95555442/article/details/159161837 https://blog.csdn.net/c3atvgx6/article/details/159161838 https://blog.csdn.net/mnqkny9f/article/details/159161839 https://blog.csdn.net/wko5z6dr/article/details/159161840 https://blog.csdn.net/2601_95544209/article/details/159161842 https://blog.csdn.net/2601_95544188/article/details/159161845 https://blog.csdn.net/sbk698lr/article/details/159161848 https://blog.csdn.net/gslb0f3d/article/details/159161854 https://blog.csdn.net/m2be8m9u/article/details/159161858 https://blog.csdn.net/2601_95555418/article/details/159161860 https://blog.csdn.net/2601_95555419/article/details/159161872 https://blog.csdn.net/n2x72jzi/article/details/159161876 https://blog.csdn.net/oqwhzqg6/article/details/159161887 https://blog.csdn.net/c1l44o9i/article/details/159161895 https://blog.csdn.net/kgoubjv5/article/details/159161896 https://blog.csdn.net/v9vvwzsc/article/details/159161902 https://blog.csdn.net/2601_95555428/article/details/159161904 https://blog.csdn.net/b3u4ouqf/article/details/159161903 https://blog.csdn.net/2601_95544175/article/details/159161909 https://blog.csdn.net/njya841u/article/details/159161911 https://blog.csdn.net/2601_95544138/article/details/159161913 https://blog.csdn.net/jm6bgxkp/article/details/159161915 https://blog.csdn.net/qafq81em/article/details/159161916 https://blog.csdn.net/e3n4424y/article/details/159161918 https://blog.csdn.net/2601_95544113/article/details/159161919 https://blog.csdn.net/vywfueu6/article/details/159161920 https://blog.csdn.net/hz335jx4/article/details/159161928 https://blog.csdn.net/dy12tmrf/article/details/159161929 https://blog.csdn.net/pbyli8m8/article/details/159161930 https://blog.csdn.net/ckzm3fuk/article/details/159161933 https://blog.csdn.net/wzq6c1d6/article/details/159161931 https://blog.csdn.net/o9ukk0b7/article/details/159161936 https://blog.csdn.net/iua1h1vt/article/details/159161937 https://blog.csdn.net/kjtnfh5v/article/details/159161943 https://blog.csdn.net/2601_95544149/article/details/159161946 https://blog.csdn.net/vxrxlflk/article/details/159161948 https://blog.csdn.net/ysgvdst2/article/details/159161949 https://blog.csdn.net/sbk698lr/article/details/159161952 https://blog.csdn.net/w3e2ztnx/article/details/159161953 https://blog.csdn.net/ctnjyt7k/article/details/159161941 https://blog.csdn.net/bpneufdg/article/details/159161955 https://blog.csdn.net/ot6hq6nf/article/details/159161954 https://blog.csdn.net/v3n18rtk/article/details/159161959 https://blog.csdn.net/c3atvgx6/article/details/159161958 https://blog.csdn.net/qbnd6lds/article/details/159161960 https://blog.csdn.net/gslb0f3d/article/details/159161961 https://blog.csdn.net/fo3atnop/article/details/159161963 https://blog.csdn.net/2601_95555425/article/details/159161962 https://blog.csdn.net/mnqkny9f/article/details/159161966 https://blog.csdn.net/zwi1y625/article/details/159161967 https://blog.csdn.net/m2be8m9u/article/details/159161973 https://blog.csdn.net/dskkjon0/article/details/159161974 https://blog.csdn.net/2601_95544188/article/details/159161976 https://blog.csdn.net/2601_95544206/article/details/159161979 https://blog.csdn.net/l03ujtje/article/details/159161981 https://blog.csdn.net/2601_95555442/article/details/159161983 https://blog.csdn.net/wko5z6dr/article/details/159161986 https://blog.csdn.net/sqob3rfk/article/details/159161988 https://blog.csdn.net/2601_95555422/article/details/159161989 https://blog.csdn.net/he3gnhm6/article/details/159161990 https://blog.csdn.net/xzkkfd11/article/details/159161993 https://blog.csdn.net/2601_95555421/article/details/159161995 https://blog.csdn.net/s0zymiq0/article/details/159161996 https://blog.csdn.net/2601_95555416/article/details/159161997 https://blog.csdn.net/vdp8kn2a/article/details/159161998 https://blog.csdn.net/2601_95544209/article/details/159161999 https://blog.csdn.net/2601_95555418/article/details/159162000 https://blog.csdn.net/p38ls0ag/article/details/159162003 https://blog.csdn.net/g0fmhue9/article/details/159162004 https://blog.csdn.net/bgluenl8/article/details/159162005 https://blog.csdn.net/2601_95544173/article/details/159162009 https://blog.csdn.net/2601_95555419/article/details/159162012 https://blog.csdn.net/2601_95531899/article/details/159162062 https://blog.csdn.net/2601_95542988/article/details/159162064 https://blog.csdn.net/evztboj7/article/details/159162067 https://blog.csdn.net/2601_95542940/article/details/159162066 https://blog.csdn.net/2601_95555526/article/details/159162069 https://blog.csdn.net/odrjuq3o/article/details/159162080 https://blog.csdn.net/2601_95531606/article/details/159162097 https://blog.csdn.net/ih2w2z3p/article/details/159162102 https://blog.csdn.net/2601_95544404/article/details/159162108 https://blog.csdn.net/gnib9u50/article/details/159162111 https://blog.csdn.net/rbtdhifs/article/details/159162117 https://blog.csdn.net/wdccy26u/article/details/159162122 https://blog.csdn.net/db81eu4b/article/details/159162123 https://blog.csdn.net/eewbe3pd/article/details/159162125 https://blog.csdn.net/fx5m7tst/article/details/159162132 https://blog.csdn.net/2601_95544416/article/details/159162131 https://blog.csdn.net/pa78xqm9/article/details/159162133 https://blog.csdn.net/izygupyd/article/details/159162137 https://blog.csdn.net/mc8l6x4p/article/details/159162138 https://blog.csdn.net/urowjikf/article/details/159162139 https://blog.csdn.net/kwphkbu7/article/details/159162142 https://blog.csdn.net/frgjzjuh/article/details/159162143 https://blog.csdn.net/ldclm301/article/details/159162144 https://blog.csdn.net/bcq5r6g0/article/details/159162145 https://blog.csdn.net/2601_95511291/article/details/159162147 https://blog.csdn.net/x0nt76r5/article/details/159162149 https://blog.csdn.net/sllte1qn/article/details/159162148 https://blog.csdn.net/thv1x8a6/article/details/159162153 https://blog.csdn.net/k147rmx7/article/details/159162152 https://blog.csdn.net/nsvijbk6/article/details/159162155 https://blog.csdn.net/xwvnnnr2/article/details/159162154 https://blog.csdn.net/2601_95542988/article/details/159162157 https://blog.csdn.net/t6u5e5pt/article/details/159162159 https://blog.csdn.net/vu7v70l4/article/details/159162161 https://blog.csdn.net/axrq5nhg/article/details/159162162 https://blog.csdn.net/dsltd6nv/article/details/159162164 https://blog.csdn.net/h4j26d49/article/details/159162165 https://blog.csdn.net/i55xtzjy/article/details/159162168 https://blog.csdn.net/jmy2zg6p/article/details/159162169 https://blog.csdn.net/js0jcl4a/article/details/159162173 https://blog.csdn.net/dhsehlad/article/details/159162174 https://blog.csdn.net/moamqks1/article/details/159162176 https://blog.csdn.net/ef4sc3ar/article/details/159162177 https://blog.csdn.net/j6gnb5md/article/details/159162179 https://blog.csdn.net/enriln3d/article/details/159162180 https://blog.csdn.net/i3idhvpf/article/details/159162181 https://blog.csdn.net/xoqpdzbl/article/details/159162175 https://blog.csdn.net/kk08u35d/article/details/159162182 https://blog.csdn.net/nlrz7ivy/article/details/159162183 https://blog.csdn.net/cyv207bb/article/details/159162184 https://blog.csdn.net/ufmgamnw/article/details/159162185 https://blog.csdn.net/2601_95542940/article/details/159162186 https://blog.csdn.net/2601_95555526/article/details/159162187 https://blog.csdn.net/2601_95531326/article/details/159162188 https://blog.csdn.net/a5yyj01i/article/details/159162189 https://blog.csdn.net/dn5yexoa/article/details/159162194 https://blog.csdn.net/2601_95499172/article/details/159162192 https://blog.csdn.net/da6sx5ow/article/details/159162196 https://blog.csdn.net/2601_95499174/article/details/159162199 https://blog.csdn.net/gyi972y2/article/details/159162200 https://blog.csdn.net/2601_95531928/article/details/159162201 https://blog.csdn.net/x22g8h7z/article/details/159162198 https://blog.csdn.net/g0aa2h7p/article/details/159162205 https://blog.csdn.net/o385fufg/article/details/159162206 https://blog.csdn.net/wswmo6wb/article/details/159162204 https://blog.csdn.net/w4roeu0i/article/details/159162202 https://blog.csdn.net/2601_95511308/article/details/159162212 https://blog.csdn.net/2601_95531655/article/details/159162215 https://blog.csdn.net/nsgt2iha/article/details/159162220 https://blog.csdn.net/rnyc81ut/article/details/159162222 https://blog.csdn.net/2601_95543016/article/details/159162233 https://blog.csdn.net/ovg9x3bz/article/details/159162234 https://blog.csdn.net/2601_95531606/article/details/159162245 https://blog.csdn.net/ih2w2z3p/article/details/159162249 https://blog.csdn.net/edzkj4hw/article/details/159162251 https://blog.csdn.net/kwphkbu7/article/details/159162252 https://blog.csdn.net/fx5m7tst/article/details/159162253 https://blog.csdn.net/axrq5nhg/article/details/159162259 https://blog.csdn.net/j6gnb5md/article/details/159162260 https://blog.csdn.net/wdccy26u/article/details/159162263 https://blog.csdn.net/qug5hwih/article/details/159162262 https://blog.csdn.net/nfl045t0/article/details/159162265 https://blog.csdn.net/pop5v9k5/article/details/159162268 https://blog.csdn.net/db81eu4b/article/details/159162269 https://blog.csdn.net/js0jcl4a/article/details/159162272 https://blog.csdn.net/rbtdhifs/article/details/159162271 https://blog.csdn.net/wswmo6wb/article/details/159162277 https://blog.csdn.net/bcq5r6g0/article/details/159162274 https://blog.csdn.net/2601_95531655/article/details/159162282 https://blog.csdn.net/g0aa2h7p/article/details/159162285 https://blog.csdn.net/eewbe3pd/article/details/159162298 https://blog.csdn.net/ufmgamnw/article/details/159162297 https://blog.csdn.net/ldclm301/article/details/159162299 https://blog.csdn.net/mc8l6x4p/article/details/159162300 https://blog.csdn.net/k147rmx7/article/details/159162302 https://blog.csdn.net/frgjzjuh/article/details/159162304 https://blog.csdn.net/gnib9u50/article/details/159162305 https://blog.csdn.net/dsltd6nv/article/details/159162307 https://blog.csdn.net/urtatwm6/article/details/159162313 https://blog.csdn.net/izygupyd/article/details/159162312 https://blog.csdn.net/moamqks1/article/details/159162315 https://blog.csdn.net/nsgt2iha/article/details/159162316 https://blog.csdn.net/ef4sc3ar/article/details/159162319 https://blog.csdn.net/2601_95498576/article/details/159162320 https://blog.csdn.net/i3idhvpf/article/details/159162324 https://blog.csdn.net/xoqpdzbl/article/details/159162323 https://blog.csdn.net/da6sx5ow/article/details/159162314 https://blog.csdn.net/2601_95531928/article/details/159162328 https://blog.csdn.net/kk08u35d/article/details/159162329 https://blog.csdn.net/w4roeu0i/article/details/159162330 https://blog.csdn.net/x22g8h7z/article/details/159162331 https://blog.csdn.net/vu7v70l4/article/details/159162332 https://blog.csdn.net/zhnh436x/article/details/159162334 https://blog.csdn.net/cyv207bb/article/details/159162338 https://blog.csdn.net/dhsehlad/article/details/159162335 https://blog.csdn.net/i55xtzjy/article/details/159162337 https://blog.csdn.net/urowjikf/article/details/159162339 https://blog.csdn.net/sllte1qn/article/details/159162343 https://blog.csdn.net/rnyc81ut/article/details/159162345 https://blog.csdn.net/thv1x8a6/article/details/159162344 https://blog.csdn.net/h4j26d49/article/details/159162348 https://blog.csdn.net/jmy2zg6p/article/details/159162347 https://blog.csdn.net/o385fufg/article/details/159162350 https://blog.csdn.net/2601_95511308/article/details/159162351 https://blog.csdn.net/2601_95544416/article/details/159162354
http://www.jsqmd.com/news/493578/

相关文章:

  • 市面上的可视挖耳勺怎么样?掏耳神器哪种最好用?耳勺品牌排行榜
  • 保姆级教程:Pentaho Kettle 10.2.0.0-222安装与MySQL连接全流程(附驱动下载)
  • CAD设计文档智能生成:Nanbeige 4.1-3B理解图纸并输出工艺说明
  • Qwen3-TTS新手入门:无需代码,WebUI界面快速合成多语言语音
  • 快速上手translategemma-27b-it:图文翻译模型部署与调用指南
  • Deformable DETR 实战解析:如何加速目标检测训练与提升小物体检测性能
  • PROJECT MOGFACE Python入门实战:10分钟完成你的第一个AI应用
  • CST仿真原理:让CST软件告诉你高速差分信号为什么要进行等长匹配
  • 自学python笔记心得--数据存储与运算2
  • Qwen3-ForcedAligner-0.6B在医疗转录中的应用:精准病历时间戳标注
  • dify节点HTTP 请求右击不显示文件或图片URL解决方式
  • 一级减速器成套CAD图【22CAD】
  • 注意力状态空间模块解析:为什么MambaIRv2在图像恢复任务中表现如此出色?
  • 氮化镓GaN FET/GaN HEMT功率驱动器选型一览表
  • 避坑指南:穿云箭量化平台HP_tdx股票代码转换的6种隐藏陷阱(附正确姿势)
  • 6 个让你悄悄发胖的坏习惯,第 3 个很多人天天在做
  • TensorRT Python API实战:从ONNX模型到高效推理引擎的完整流程
  • 微服务统一认证:Gateway集成JWT实战
  • GME-Qwen2-VL-2B-Instruct快速原型开发:利用CSDN开源项目加速应用落地
  • 第三届通信、信息与数字技术国际会议(CIDT 2026),SPIE出版论文
  • Xinference场景实战:用一行代码为你的AI应用快速切换大模型后端
  • 2026年口碑好的煤粉公司推荐:铸造煤粉公司口碑推荐 - 品牌宣传支持者
  • 搜索 会员中心 创作中心 干货整理!10 个适合自学网络安全的在线资源平台
  • Linux驱动开发理解指针与结构体
  • 记录一下uniapp项目中自己封装的组件开发环境特别卡的问题
  • Dify私有化上线倒计时72小时——这份由3家金融级客户联合验证的《灰度发布核验清单》正在紧急回收中(含自动巡检脚本)
  • 基于Halcon的距离变换与分水岭算法在骰子点数识别中的应用
  • LoRA训练助手效果对比:传统正则匹配vs Qwen3-32B语义理解tag生成
  • 8大网盘直链下载神器:LinkSwift完全使用指南
  • 微电网保护的关键技术在城市商业园区场景中的应用案例分享