# dbmq-spring-boot-starter **Repository Path**: kenewstar/dbmq-spring-boot-starter ## Basic Information - **Project Name**: dbmq-spring-boot-starter - **Description**: 一个去中心化的基于数据库的消息队列组件 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2024-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dbmq-spring-boot-starter #### 介绍 一个去中心化的基于数据库的消息队列组件 #### DbMq入门 > 当前支持MySQL、Mongo数据库,默认使用MySQL数据库 1. pom.xml依赖引入 ```xml io.gitee.kenewstar dbmq-spring-boot-starter 1.0 ``` 2. 创建消费者 ```java import io.gitee.kenewstar.dbmq.DbMqConsumer; import io.gitee.kenewstar.dbmq.DbMqConsumerInf; import io.gitee.kenewstar.dbmq.Message; import java.util.List; /** * @author kenewstar */ @DbMqConsumer(topic = "mq_demo_test") public class DemoConsumer implements DbMqConsumerInf { @Override public void consume(List list) { System.out.println(list.size()); } } ``` 3. 引入生产者发送消息 ```java import cn.hutool.core.lang.UUID; import io.gitee.kenewstar.dbmq.DbMqMessageProducer; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * @author kenewstar */ @RestController @RequestMapping("mq") public class ProducerController { @Resource private DbMqMessageProducer messageProducer; @GetMapping("/send") public void sendMessage(String topic) { List msg = new ArrayList<>(); for (int i = 0; i < 758; i++) { msg.add("{\"demo\": \" "+ UUID.randomUUID() +" \"}"); } messageProducer.sendMessage(topic, msg); } } ``` 当springboot启动后即可通过接口发送消息数据,接着控制台将打印消费的数据 #### 使用MySQL数据库 完整的pom.xml ```xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.14 io.gitee.kenewstar springboot-dbmq 1.0 8 8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java 5.1.49 io.gitee.kenewstar dbmq-spring-boot-starter 1.0 ``` > 或者不引入springboot-jdbc,只需要将DataSource对象交给Spring管理即可 修改application.yml文件 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&useTimezone=true&serverTimezone=Asia/Shanghai username: root password: kenewstar driver-class-name: com.mysql.jdbc.Driver db-mq: type: mysql # 默认值可以不配置 heartbeatInterval: 120000 # 默认值可以不配置 ``` #### 使用Mongo数据库 完整的pom.xml ```xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.14 io.gitee.kenewstar springboot-dbmq 1.0 8 8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-mongodb io.gitee.kenewstar dbmq-spring-boot-starter 1.0 ``` 修改application.yml文件 ```yaml spring: data: mongodb: host: 127.0.0.1 port: 27017 database: dbmq db-mq: type: mongo heartbeatInterval: 120000 ```