核心内容摘要
SiameseUIE效果实测:中文多文档联合抽取——跨新闻稿识别同一事件的完整要素链
消æ�¯ä¸é—´ä»¶MQ全称为Message Queue,消æ�¯é˜Ÿåˆ—是应用程åº�和应用程åº�之间的通信方法。在项目ä¸ï¼Œå�¯å°†ä¸€äº›æ— 需å�³æ—¶è¿”å›�且耗时的æ“�作æ��å�–出æ�¥ï¼Œè¿›è¡Œå¼‚æ¥å¤„ç�†ï¼Œè€Œè¿™ç§�异æ¥å¤„ç�†çš„æ–¹å¼�大大的节çœ�了æœ�务器的请求å“�应时间,ä»�而æ��高了系统的å��å��é‡�。常è§�的消æ�¯ä¸é—´ä»¶
ActiveMQ基äº� JMS(Java Message Service)规范,Apache å¼€æº�é¡¹ç›®ã€‚ä¼˜ç‚¹ï¼šæ ‡å‡†å…¼å®¹æ€§å¥½ï¼šå®Œæ•´æ”¯æŒ� JMS
1/
0 规范,适å�ˆ Java ä¼�业级应用。功能全é�¢ï¼šæ”¯æŒ�点对点(Queue)ã€�å�‘布订阅(Topic)ã€�事务ã€�æŒ�久化ã€�集群ç‰ã€‚å��议丰富:除 OpenWire(默认)外,还支æŒ� STOMPã€�AMQPã€�MQTTã€�WebSocket ç‰ï¼Œä¾¿äº�多è¯è¨€å®¢æˆ·ç«¯æ�¥å…¥ã€‚部署简å�•:å�•机模å¼�é…�置轻é‡�,适å�ˆä¸å°�å�‹ç³»ç»Ÿã€‚缺点:性能一般:在高并å�‘ã€�高å��å��场景下性能ä¸�如 Kafka 或 RocketMQ。主ä»�切æ�¢æ…¢ï¼šä¼ 统主ä»�模å¼�æ•…éšœæ�¢å¤�较慢(虽有 LevelDB + ZooKeeper 的共享å˜å‚¨æ–¹æ¡ˆï¼Œä½†å·²ä¸�æ�¨è��)。社区活跃度下é™�:新版本(如 ActiveMQ Artemis)虽有改进,但整体生æ€�被 RabbitMQ/Kafka 超越。扩展性有é™�:横å�‘扩展能力较弱,ä¸�适å�ˆè¶…大规模消æ�¯å †ç§¯ã€‚ğŸ“Œé€‚ç”¨åœºæ™¯ï¼šä¼ ç»Ÿä¼�业应用ã€�ä½�频异æ¥è§£è€¦ã€�需è¦� JMS æ ‡å‡†çš„ Java 系统。
RabbitMQ基� AMQP
0.
1 å��议,使用 Erlang å¼€å�‘,强调å�¯é� 性ä¸�稳定性。优点:高å�¯é� 性:支æŒ�消æ�¯æŒ�久化ã€�ACK 机制ã€�æ»ä¿¡é˜Ÿåˆ—ã€�消æ�¯é‡�试ç‰ï¼Œç¡®ä¿�ä¸�丢消æ�¯ã€‚ç�µæ´»è·¯ç”±ï¼šé€šè¿‡ Exchange + Binding + Routing Key å®�ç�°å¤�æ�‚路由ç–略(direct/topic/fanout/header)。管ç�†ç•Œé�¢å�‹å¥½ï¼šå†…ç½® Web UI,监æ�§ã€�è¿�ç»´ã€�æ�’é”™é��常方便。社区æˆ�熟:文档丰富,æ�’件生æ€�完善(如延迟æ�’ä»¶ã€�Shovelã€�Federation)。多è¯è¨€æ”¯æŒ�好:官方æ��供多ç§�客户端 SDK。缺点:å��å��é‡�ä¸ç‰ï¼šå�•机å��å��通常在万级 QPS,远ä½�äº� Kafka/RocketMQ。Erlang 门槛高:二次开å�‘或深度定制困难,æ�’查问题需了解 Erlang。内å˜å� 用高:大é‡�未消费消æ�¯ä¼šå� 用较多内å˜ï¼ˆå�¯è°ƒä¼˜ï¼‰ã€‚集群扩展性一般:镜åƒ�队列(Mirroring)虽ä¿�è¯�高å�¯ç”¨ï¼Œä½†å†™æ€§èƒ½å�—主节点é™�åˆ¶ï¼Œæ— æ³•æ°´å¹³æ‰©å±•é˜Ÿåˆ—ã€‚ğŸ“Œé€‚ç”¨åœºæ™¯ï¼šå¯¹æ¶ˆæ�¯å�¯é� 性è¦�求高ã€�业务逻辑å¤�æ�‚的系统(如金è��ã€�订å�•ã€�支付)。
RocketMQ阿里巴巴开æº�,å��æ��èµ Apache,为高å��å��ã€�高å�¯ç”¨ã€�顺åº�消æ�¯è€Œç”Ÿã€‚优点:高性能 高å��å��:å�•机å�¯è¾¾ 10w+ QPS,延迟ä½�(毫秒级)。强顺åº�消æ�¯ï¼šæ”¯æŒ�ä¸¥æ ¼ FIFO(分区有åº�),适用äº�交易æµ�æ°´ã€�日志ç‰åœºæ™¯ã€‚消æ�¯å †ç§¯èƒ½åŠ›å¼ºï¼šåŸºäº�ç£�盘文件å˜å‚¨ï¼Œæ”¯æŒ� TB 级消æ�¯å †ç§¯è€Œä¸�å½±å“�性能。丰富的特性:延迟消æ�¯ï¼ˆ18个ç‰çº§ï¼‰ã€�事务消æ�¯ã€�消æ�¯è½¨è¿¹ã€�ACL æ�ƒé™�æ�§åˆ¶ã€‚天然分布å¼�æ�¶æ�„:NameServerï¼ˆæ— çŠ¶æ€�) + Broker(主ä»�) + Producer/Consumer,易äº�水平扩展。缺点:生æ€�相对å°�é—:主è¦�围绕 Java 生æ€�,其他è¯è¨€å®¢æˆ·ç«¯æ”¯æŒ�较弱(虽有 Go/Python 社区版,但ä¸�如 Kafka æˆ�熟)。è¿�ç»´å¤�æ�‚度较高:需维护 NameServer å’Œ Broker 集群,é…�置项较多。å��è®®é��æ ‡å‡†ï¼šè‡ªå®šä¹‰å��议,ä¸�兼容 JMS/AMQP,è¿�ç§»æˆ�æœ¬é«˜ã€‚ç¤¾åŒºå›½é™…åŒ–è¾ƒå¼±ï¼šæ–‡æ¡£ä»¥ä¸æ–‡ä¸ºä¸»ï¼Œè‹±æ–‡èµ„料较少。📌适用场景:电商ã€�金è��ã€�日志收集ç‰å¯¹å��å��ã€�顺åº�ã€�å †ç§¯æœ‰é«˜è¦�求的场景。
KafkaLinkedIn å¼€æº�,分布å¼�æµ�处ç�†å¹³å�°ï¼Œå¼ºè°ƒé«˜å��å��ã€�å�¯æ‰©å±•ã€�æŒ�久化日志。优点:超高å��å��é‡�:å�•机å�¯è¾¾æ•°å��万甚至百万级 QPS,适å�ˆå¤§æ•°æ�®åœºæ™¯ã€‚æ��强扩展性:分区(Partition)机制天然支æŒ�水平扩展,消费者组å�¯å¹¶è¡Œæ¶ˆè´¹ã€‚æŒ�久化ä¸�å›�溯:消æ�¯æŒ�久化到ç£�盘,支æŒ�按 offset ä»»æ„�å›�放(适用äº�æ•°æ�®ç®¡é�“ã€�ETL)。生æ€�系统强大:ä¸� Flinkã€�Sparkã€�Hadoopã€�Kafka Streams ç‰æ— ç¼�集æˆ�。跨è¯è¨€æ”¯æŒ�好:社区æ��供丰富的客户端(Java/Go/Python/Node.js ç‰ï¼‰ã€‚缺点:å®�时性ç¨�差:为å��å��优化,默认批é‡�å�‘é€�/拉å�–,端到端延迟通常在 10msï½�100ms(ä¸�适å�ˆå¼ºå®�时场景)。ä¸�支æŒ�å¤�æ�‚路由:å�ªæœ‰ Topic + Partitionï¼Œæ— RabbitMQ é‚£æ ·çš„ç�µæ´» Exchange。消æ�¯å�¯é� 性需调优:默认é…�ç½®å�¯èƒ½ä¸¢æ¶ˆæ�¯ï¼ˆéœ€è®¾ç½®acks=all,replication.factor≥3ç‰ï¼‰ã€‚è¿�ç»´å¤�æ�‚:ä¾�èµ– ZooKeeper(Kafka
8+ 支æŒ� KRaft 模å¼�å�» ZooKeeper,但尚未完全普å�Šï¼‰ã€‚📌适用场景:日志è�šå�ˆã€�行为追踪ã€�æµ�å¼�处ç�†ã€�大数æ�®ç®¡é�“ã€�事件溯æº�ç‰ã€‚Kafka:适å�ˆå¤§æ•°æ�®å¤„ç�†ã€�æµ�计算场景,以å�Šå¯¹å��å��é‡�å’ŒæŒ�久化有æ��高è¦�求,并且愿æ„�投入资æº�进行è¿�维的项目。ActiveMQ:适用äº�å°�å�‹é¡¹ç›®æˆ–对消æ�¯é˜Ÿåˆ—功能需求较简å�•的场景,由äº�社区活跃度ä¸�高,ä¸�æ�¨è��使用。RabbitMQ:在需è¦�ç�µæ´»è·¯ç”±ã€�广泛è¯è¨€æ”¯æŒ�å�Šè‰¯å¥½ç¤¾åŒºç”Ÿæ€�的项目ä¸è¡¨ç�°å‡ºè‰²ï¼Œé€‚用äº�大多数通用应用场景。RocketMQ:尤其适å�ˆé‡‘è��ã€�电商ç‰å¯¹æ€§èƒ½å’Œäº‹åС处ç�†è¦�求严苛,愿æ„�投入精力å¦ä¹ 和维护的大å�‹åˆ†å¸ƒå¼�系统。
RabbitMQ简介RabbitMQ是由erlangè¯è¨€å¼€å�‘,基äº�AMQP(Advanced Message Queue 高级消æ�¯é˜Ÿåˆ—å��议)å��è®®å®�ç�°çš„æ¶ˆæ�¯é˜Ÿåˆ—,它是一ç§�应用程åº�之间的通信方法,消æ�¯é˜Ÿåˆ—在分布å¼�系统开å�‘ä¸åº”用é��常广泛。RabbitMQ官方地å�€ï¼šhttp://www.rabbitmq.com/RabbitMQæ��供了6ç§�模å¼�:简å�•模å¼�,work模å¼�,Publish/Subscribeå�‘布ä¸�订阅模å¼�,Routing路由模å¼�,Topics主题模å¼�,RPC远程调用模å¼�(远程调用,ä¸�太算MQ;暂ä¸�作介ç»�);官网对应模å¼�介ç»�:https://www.rabbitmq.com/getstarted.html安装æˆ�功å��,在sbin目录下cmd执行rabbitmq-plugins enable rabbitmq_managementå�¯åŠ¨ç®¡ç�†åŠŸèƒ½é»˜è®¤è´¦å�·å¯†ç � guest
导入�赖!--amqp-client-- !-- Source: https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -- dependency groupIdcom.rabbitmq/groupId artifactIdamqp-client/artifactId version
5.
2