Skip to content

Commit 472c12e

Browse files
committed
new version init
1 parent 948e54e commit 472c12e

File tree

3 files changed

+175
-14
lines changed

3 files changed

+175
-14
lines changed

doc/XXL-MQ官方文档.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -634,15 +634,43 @@ transaction | 事务开关,开启消息事务性保证只会成功执行一次
634634

635635
### Tmp
636636

637-
1、模型说明:
638-
- Topic:消息主题;
639-
- 查看注册节点;
640-
- 操作:状态;
641-
- Message:消息队列,物理消息队列;msgid + msgbody + topic + group + shardingId + status + retryCount + intervalTime + effectTime;
642-
- topic:关联 消息主题;
643-
- group:
644-
- shardingId:消费分片ID,限制0-1000之内;结合Consumer在线列表,匹配消费分片范围,实现并行分片消费消息;
645-
2、模块组成:
637+
1、特性:
638+
- 特性:存算分离、水平扩展、高性能(TPS:Mysql单机1W/Blade 10W)、海量消息(Mysql日百万/Blade日十亿)、消息轨迹、多消费模式(分片/串行/广播)、延迟消息、失败重试(固定/增长/指数)、
639+
- 其他:失败告警、AccessToken、容器化;
640+
2、模型设计:
641+
- _user:用户管理
642+
- _access_token:通讯Token,for OpenAPI
643+
- _registry:【10s一次;广播更新;】Broker动态注册(内置RPC服务) + Consumer动态注册(数据分片用)
644+
- 字段:type + key + data + addtime
645+
- 示例:
646+
- 01(broker) + “broker” + “address01” + "" + now()
647+
- 02(comsumer) + “consumer_uuid” + [{topic01&group, topic02&group}] + now()
648+
- 【RegistryData】不额外存储,内存动态生成;
649+
- Broker:[address01、address02]
650+
- Consumer:topic : [{group : consumer_uuid01, uuid02}]
651+
- _topic:消息主题,配置管理;查看注册节点,借助 “consumer_uuid + group” 分片处理数据;
652+
- 字段:name + store_table(通用/单独表) + 优先级() + author + alarm_email
653+
- 示例:“topic01” + "单独表" + "1" + "" + "" +
654+
- _message:消息队列,物理消息队列;【10min一次,自动数据归档;】
655+
- 字段:msgid + msgbody + topic + group + shardingId + status + retryCount + intervalTime + effectTime + consume_log;
656+
- topic:关联 消息主题;
657+
- group:数据广播
658+
- uuid序号:并行处理
659+
- shardingId:消费分片ID,限制0-1000之内;结合Consumer在线列表,匹配消费分片范围,实现并行分片消费消息;
660+
- _message_archive:归档消息
661+
- 字段:同 message;
662+
- _message_001:自定义表记录;
663+
- _message_archive_001:自定义表记录;
664+
3、模块设计:
665+
- 首页:Topic数量、集群数量、消息管数量;
666+
- Topic管理:
667+
- 查询条件:Topic(模糊搜索)
668+
- 管理:Topic,存储配置、优先级(归档等)、告警邮箱;注册信息查看;
669+
- 消息管理:
670+
- 查询条件 》 Topic/必选(精确搜索) + Group + 状态 + 时间;
671+
- 操作 》新增 + 删除 + 状态更新;
672+
- Broker管理:Broker 集群节点;IP : PORT;
673+
4、组件组成:
646674
- Broker:
647675
- Manage:提供 AccessToken、Topic、Message 管理能力;
648676
- Registry:提供 Consumer 注册、动态发现能力;消息分片消费时使用;

doc/db/tables_xxl_mq.sql

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
#
2+
# XXL-MQ
3+
# Copyright (c) 2015-present, xuxueli.
4+
5+
CREATE database if NOT EXISTS `xxl_mq` default character set utf8mb4 collate utf8mb4_unicode_ci;
6+
use `xxl_mq`;
7+
8+
SET NAMES utf8mb4;
9+
10+
11+
## —————————————————————— config data ——————————————————
12+
13+
CREATE TABLE `xxl_mq_topic`(
14+
`id` int(11) NOT NULL AUTO_INCREMENT,
15+
`topic` varchar(255) NOT NULL COMMENT '消息主题Topic',
16+
`desc` varchar(100) NOT NULL COMMENT '消息主题名称',
17+
`store_type` tinyint(4) NOT NULL COMMENT '存储类型:0-通用存储,2-单独存储',
18+
`level` int(11) NOT NULL COMMENT '优先级',
19+
`owner` varchar(50) NOT NULL COMMENT '负责人',
20+
`alarm_email` varchar(255) DEFAULT NULL COMMENT '告警配置(邮箱)',
21+
`add_time` datetime NOT NULL COMMENT '新增时间',
22+
`update_time` datetime NOT NULL COMMENT '更新时间',
23+
PRIMARY KEY (`id`),
24+
UNIQUE KEY `uni_topic` (`topic`) USING BTREE
25+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='消息主题';
26+
27+
CREATE TABLE `xxl_mq_message`(
28+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
29+
`data` text NOT NULL COMMENT '消息数据',
30+
`topic` varchar(255) NOT NULL COMMENT '消息主题Topic',
31+
`group` varchar(255) NOT NULL COMMENT '消息分组',
32+
`sharding_id` int(11) NOT NULL COMMENT '消息分片序号',
33+
`status` tinyint(4) NOT NULL COMMENT '状态:0-正常、1-运行中、2-成功、3-失败',
34+
`retry_count` int(11) NOT NULL COMMENT '重试次数',
35+
`retry_type` varchar(100) NOT NULL COMMENT '重试策略(固定;增长;指数)',
36+
`retry_interval` int(11) NOT NULL COMMENT '重试间隔(3s;2/4/6;2/4/8)',
37+
`effect_time` datetime NOT NULL COMMENT '生效时间',
38+
`consume_log` text DEFAULT NULL COMMENT '消费地址',
39+
`add_time` datetime NOT NULL COMMENT '新增时间',
40+
`update_time` datetime NOT NULL COMMENT '更新时间',
41+
PRIMARY KEY (`id`),
42+
KEY `i_t_g_1` (`topic`, `group`, `sharding_id`)
43+
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='消息数据表';
44+
45+
CREATE TABLE `xxl_mq_message_archive` (
46+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
47+
`data` text NOT NULL COMMENT '消息数据',
48+
`topic` varchar(255) NOT NULL COMMENT '消息主题Topic',
49+
`group` varchar(255) NOT NULL COMMENT '消息分组',
50+
`sharding_id` int(11) NOT NULL COMMENT '消息分片序号',
51+
`status` tinyint(4) NOT NULL COMMENT '状态:0-正常、1-运行中、2-成功、3-失败',
52+
`retry_count` int(11) NOT NULL COMMENT '重试次数',
53+
`retry_type` varchar(100) NOT NULL COMMENT '重试策略(固定;增长;指数)',
54+
`retry_interval` int(11) NOT NULL COMMENT '重试间隔(3s;2/4/6;2/4/8)',
55+
`effect_time` datetime NOT NULL COMMENT '生效时间',
56+
`consume_log` text DEFAULT NULL COMMENT '消费日志',
57+
`add_time` datetime NOT NULL COMMENT '新增时间',
58+
`update_time` datetime NOT NULL COMMENT '更新时间',
59+
PRIMARY KEY (`id`),
60+
KEY `i_t_g_1` (`topic`, `group`, `sharding_id`)
61+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息数据归档表';
62+
63+
## —————————————————————— registry of application ——————————————————
64+
65+
CREATE TABLE `xxl_mq_registry` (
66+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
67+
`type` tinyint(4) NOT NULL COMMENT '注册类型:1-Broker,2-Consumer',
68+
`key` varchar(255) NOT NULL COMMENT '注册Key(broker,consumer—uuid)',
69+
`data` text NOT NULL COMMENT '数据正文,json结构体(address01,topic01&group)',
70+
`add_time` datetime NOT NULL COMMENT '新增时间',
71+
`update_time` datetime NOT NULL COMMENT '更新时间',
72+
PRIMARY KEY (`id`)
73+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='注册表';
74+
75+
76+
77+
78+
79+
## —————————————————————— user and token and application ——————————————————
80+
81+
CREATE TABLE `xxl_mq_application` (
82+
`id` int(11) NOT NULL AUTO_INCREMENT,
83+
`appname` varchar(50) NOT NULL COMMENT 'AppName(应用唯一标识)',
84+
`name` varchar(20) NOT NULL COMMENT '应用名称',
85+
`desc` varchar(100) NOT NULL COMMENT '应用描述',
86+
`add_time` datetime NOT NULL COMMENT '新增时间',
87+
`update_time` datetime NOT NULL COMMENT '更新时间',
88+
PRIMARY KEY (`id`),
89+
UNIQUE KEY `i_appname` (`appname`) USING BTREE
90+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用';
91+
92+
CREATE TABLE `xxl_mq_user` (
93+
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
94+
`username` varchar(50) NOT NULL COMMENT '账号',
95+
`password` varchar(50) NOT NULL COMMENT '密码',
96+
`user_token` varchar(50) DEFAULT NULL COMMENT '登录token',
97+
`status` tinyint(4) NOT NULL COMMENT '状态:0-正常、1-禁用',
98+
`real_name` varchar(50) DEFAULT NULL COMMENT '真实姓名',
99+
`role` varchar(20) NOT NULL COMMENT '角色:ADMIN-管理员,NORMAL-普通用户',
100+
`permission` varchar(255) DEFAULT NULL COMMENT '权限:应用ID列表,多个逗号分割',
101+
`add_time` datetime NOT NULL COMMENT '新增时间',
102+
`update_time` datetime NOT NULL COMMENT '更新时间',
103+
PRIMARY KEY (`id`),
104+
UNIQUE KEY `i_username` (`username`) USING BTREE
105+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
106+
107+
CREATE TABLE `xxl_mq_access_token` (
108+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
109+
`access_token` varchar(50) NOT NULL COMMENT '注册发现AccessToken',
110+
`status` tinyint(4) NOT NULL COMMENT '状态:0-正常、1-禁用',
111+
`add_time` datetime NOT NULL COMMENT '新增时间',
112+
`update_time` datetime NOT NULL COMMENT '更新时间',
113+
PRIMARY KEY (`id`)
114+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='注册发现AccessToken';
115+
116+
## —————————————————————— init data ——————————————————
117+
118+
INSERT INTO `xxl_mq_user`(`id`, `username`, `password`, `user_token`, `status`, `real_name`, `role`, `add_time`, `update_time`)
119+
VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', '', 0, 'Jack', 'ADMIN', now(), now()),
120+
(2, 'user', 'e10adc3949ba59abbe56e057f20f883e', '', 0, 'Lucy', 'NORMAL', now(), now());
121+
122+
INSERT INTO `xxl_mq_access_token` (id, `access_token`, `status`, add_time, update_time)
123+
VALUES (1, 'defaultaccesstoken', 0, now(), now());
124+
125+
INSERT INTO `xxl_mq_application` (id, appname, name, `desc`, add_time, update_time)
126+
VALUES (1, 'xxl-mq-sample', '示例应用', '示例应用,演示使用', '2025-01-18 20:03:13', '2025-01-18 20:03:13');
127+
128+
129+
commit;

pom.xml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
<url>https://www.xuxueli.com/</url>
1212

1313
<modules>
14-
<module>xxl-mq-client</module>
1514
<module>xxl-mq-admin</module>
15+
<module>xxl-mq-admin2</module>
16+
<module>xxl-mq-client</module>
1617
<module>xxl-mq-samples</module>
1718
</modules>
1819

@@ -29,17 +30,20 @@
2930
<maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version>
3031
<maven-gpg-plugin.version>3.2.7</maven-gpg-plugin.version>
3132

32-
<!-- xxl-rpc -->
33-
<xxl-rpc.version>1.3.2</xxl-rpc.version>
34-
3533
<!-- spring -->
3634
<spring.version>5.3.39</spring.version>
3735
<spring-boot.version>2.7.18</spring-boot.version>
38-
3936
<!-- database -->
4037
<mybatis-spring-boot-starter.version>2.3.2</mybatis-spring-boot-starter.version>
4138
<mysql-connector-j.version>9.1.0</mysql-connector-j.version>
4239

40+
<!-- xxl-rpc -->
41+
<xxl-rpc.version>1.3.2</xxl-rpc.version>
42+
43+
<!-- tool -->
44+
<xxl-tool.version>1.3.2</xxl-tool.version>
45+
<!-- json -->
46+
<fastjson2.version>2.0.54</fastjson2.version>
4347
</properties>
4448

4549
<build>

0 commit comments

Comments
 (0)