- 应用骨架: Solon + MyBatis-Plus + PostgreSQL + Redis + Sa-Token - 核心链路: 回调网关 → 消息落库(幂等) → 分发队列(FOR UPDATE SKIP LOCKED) → worker消费/重试/死信 - 多租户隔离: 前缀法账号映射, 所有业务表带 tenant_id - 管理后台: FreeMarker 渲染, 租户/授权/队列/用量管理页面 - 历史消息补拉: 水位线驱动, getRoamMsg/getGroupMsg 增量拉取, 兜底回调丢失 - msg_key 统一算法(回调/补拉共享, 跨路径去重) Co-Authored-By: Claude <noreply@anthropic.com>
158 lines
5.2 KiB
XML
158 lines
5.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
|
||
<!-- 参考 yxtech,沿用 Solon v3.10.0 parent -->
|
||
<parent>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-parent</artifactId>
|
||
<version>3.10.0</version>
|
||
<relativePath/>
|
||
</parent>
|
||
|
||
<groupId>com.imutil</groupId>
|
||
<artifactId>tencent-im-util</artifactId>
|
||
<version>1.0</version>
|
||
<packaging>jar</packaging>
|
||
|
||
<description>腾讯 IM 多系统合并分发工具</description>
|
||
|
||
<properties>
|
||
<java.version>21</java.version>
|
||
<postgresql.version>42.7.5</postgresql.version>
|
||
<hikaricp.version>7.0.2</hikaricp.version>
|
||
<jedis.version>5.1.0</jedis.version>
|
||
<caffeine.version>3.1.8</caffeine.version>
|
||
</properties>
|
||
|
||
<dependencies>
|
||
<!-- Solon Web 核心 -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-web</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 鉴权:Sa-Token(沿用 yxtech) -->
|
||
<dependency>
|
||
<groupId>cn.dev33</groupId>
|
||
<artifactId>sa-token-solon-plugin</artifactId>
|
||
<version>1.44.0</version>
|
||
</dependency>
|
||
|
||
<!-- 腾讯云 UserSig 官方 SDK(tls-sig-api-v2,对齐官方 HMAC-SHA256+zlib 算法,避免手写出错) -->
|
||
<dependency>
|
||
<groupId>com.github.tencentyun</groupId>
|
||
<artifactId>tls-sig-api-v2</artifactId>
|
||
<version>2.0</version>
|
||
</dependency>
|
||
|
||
<!-- 视图层:FreeMarker(管理后台后端渲染,对齐 yxtech) -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-view-freemarker</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 数据访问:MyBatis-Plus for Solon -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>mybatis-plus-extension-solon-plugin</artifactId>
|
||
</dependency>
|
||
|
||
<!-- PostgreSQL 驱动(替代 MySQL) -->
|
||
<dependency>
|
||
<groupId>org.postgresql</groupId>
|
||
<artifactId>postgresql</artifactId>
|
||
<version>${postgresql.version}</version>
|
||
<scope>runtime</scope>
|
||
</dependency>
|
||
|
||
<!-- 数据库连接池 -->
|
||
<dependency>
|
||
<groupId>com.zaxxer</groupId>
|
||
<artifactId>HikariCP</artifactId>
|
||
<version>${hikaricp.version}</version>
|
||
</dependency>
|
||
|
||
<!-- Redis:限流/缓存/水位线(直接用 Jedis 封装,避免引入不确定的 Solon-redis 版本) -->
|
||
<dependency>
|
||
<groupId>redis.clients</groupId>
|
||
<artifactId>jedis</artifactId>
|
||
<version>${jedis.version}</version>
|
||
</dependency>
|
||
|
||
<!-- 本地热缓存兜底 -->
|
||
<dependency>
|
||
<groupId>com.github.ben-manes.caffeine</groupId>
|
||
<artifactId>caffeine</artifactId>
|
||
<version>${caffeine.version}</version>
|
||
</dependency>
|
||
|
||
<!-- 日志 -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-logging-logback-jakarta</artifactId>
|
||
</dependency>
|
||
|
||
<!-- Lombok -->
|
||
<dependency>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
<scope>provided</scope>
|
||
</dependency>
|
||
|
||
<!-- 定时任务(Solon Scheduling) -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-scheduling</artifactId>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-scheduling-simple</artifactId>
|
||
</dependency>
|
||
|
||
<!-- 测试 -->
|
||
<dependency>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-test</artifactId>
|
||
<scope>test</scope>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<finalName>${project.artifactId}</finalName>
|
||
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<configuration>
|
||
<annotationProcessorPaths>
|
||
<path>
|
||
<groupId>org.projectlombok</groupId>
|
||
<artifactId>lombok</artifactId>
|
||
</path>
|
||
</annotationProcessorPaths>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.noear</groupId>
|
||
<artifactId>solon-maven-plugin</artifactId>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
|
||
<!-- 腾讯云镜像,加速依赖下载 -->
|
||
<repositories>
|
||
<repository>
|
||
<id>tencent</id>
|
||
<url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
|
||
<snapshots>
|
||
<enabled>false</enabled>
|
||
</snapshots>
|
||
</repository>
|
||
</repositories>
|
||
|
||
</project>
|