You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
ruoyi-test-mq
模块说明
该模块基于需求【[将spring-cloud-stream改为普通spring的mq依赖用法】下修改编写;
原模块缺点:功能复杂学习成本高 大部分用户用不明白 功能封闭 特性无法使用 项目中基本不会有切换mq的事情发生;
现模块:集成基础的rabbit、rocketmq、kafka等主流的中间件,功能包含
- rabbit: 普通消息、延迟队列
- rocket:普通消息、事务消息
- kafka:普通消息
后续可实现的:
- kafka stream流的使用
- rocket 顺序、异步、延时等
项目目录
├─src
│ └─main
│ ├─java
│ │ └─org
│ │ └─dromara
│ │ └─stream
│ │ │ RuoYiTestMqApplication.java
│ │ │
│ │ ├─config
│ │ │ RabbitConfig.java 普通消息配置类
│ │ │ RabbitTtlQueueConfig.java 延迟队列配置类
│ │ │
│ │ ├─controller 测试类
│ │ │ PushMessageController.java
│ │ │
│ │ └─mq
│ │ ├─consumer
│ │ │ ├─kafkaMq
│ │ │ │ KafkaNormalConsumer.java
│ │ │ ├─rabbit
│ │ │ │ ConsumerListener.java
│ │ │ └─rocketmq
│ │ │ NormalRocketConsumer.java
│ │ │ TransactionRocketConsumer.java
│ │ ├─listener
│ │ │ TranscationRocketListener.java
│ │ └─producer
│ │ ├─kafkaMq
│ │ │ KafkaNormalProducer.java
│ │ ├─rabbitMq
│ │ │ DelayRabbitProducer.java
│ │ │ NormalRabbitProducer.java
│ │ └─rocketMq
│ │ NormalRocketProducer.java
│ │ TransactionRocketProducer.java
│ │
│ └─resources
│ application.yml IP:Host根据实际情况替换
│ logback-plus.xml
使用方式
rocketmq:
注意:需要进入到rockerMQ文件路径中执行
创建普通消息的topic
sh mqadmin updateTopic -n <nameserver_address> -t <topic_name> -c <cluster_name> -a +message.type=NORMAL
bin/mqadmin updatetopic -n localhost:9876 -t TestTopic -c DefaultCluster
创建事务消息的topic
sh mqadmin updateTopic -n <nameserver_address> -t <topic_name> -c <cluster_name> -a +message.type=TRANSACTION
bin/mqadmin updatetopic -n localhost:9876 -t transaction_topic -c DefaultCluster -a +message.type=TRANSACTION
kafka:
kafka-topics.sh --create --topic <topic_name> --bootstrap-server <broker_list> --partitions <num_partitions> --replication-factor <replication_factor>
kafka-topics.sh --create --topic my_topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
验证方式
可通过PushMessageController
实现Restful
进行测试;