# tyylab-message
**Repository Path**: tyylab/tyylab-message
## Basic Information
- **Project Name**: tyylab-message
- **Description**: 专注于消息传递技术的研究与开发,tyylab-message 提供高效、可靠的通信框架,适用于实时聊天、通知系统、秒杀削峰等应用场景。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2025-02-08
- **Last Updated**: 2025-11-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# tyylab-message
[](https://www.apache.org/licenses/LICENSE-2.0)

轻量级分布式事件收发组件,基于Spring Boot和Redis实现高效的消息发布/订阅机制。
## 功能特性
- 🚀 基于Redis的分布式事件发布/订阅
- ⚡ 自动配置(开箱即用)
- 🔒 消息幂等性支持(通过IUniqueSupport接口)
- 🌐 远程事件发布能力(RemoteEventPublisher)
- 🧩 模块化设计(核心/API/监听/分发解耦)
- 📊 并发处理控制(可配置线程池参数)
## 快速开始
### 依赖配置
```xml
com.tyylab.open
tyylab-message-core
1.0.0
```
### 基础配置
```yaml
# application.yml
tyylab:
message:
redis:
host: localhost
port: 6379
database: 0
thread-pool:
core-size: 4
max-size: 8
```
### 事件发布示例
```java
@Autowired
private ITyylabEventPublisher eventPublisher;
public void publishEvent() {
eventPublisher.publish(new PingEvent());
}
```
### 事件订阅示例
#### 接口实现方式
```java
@Slf4j
@Component
public class DemoSubscriber implements ISubscribe {
@Override
public void onMessage(PingEvent event) {
log.info("收到Ping事件: {}", event);
}
@Override
public boolean match(PingEvent event) {
return event.isValid(); // 条件订阅
}
}
```
#### 注解实现方式
```java
@Slf4j
@Component
public class SpringAnnotationSubscriber {
@EventListener(classes = PingEvent.class)
public void handlePingEvent(PingEvent event) {
log.info("通过Spring注解处理事件: {}", event);
}
}
```
## 模块说明
| 模块名称 | 功能描述 |
|--------------------------|----------------------------|
| tyylab-message-api | 定义核心接口和事件模型 |
| tyylab-message-core | 核心实现(Redis配置/消息处理)|
| tyylab-event-listener | 事件监听实现 |
| tyylab-event-publish-remote | 远程事件发布支持 |
| tyylab-message-distribute| 消息分发策略管理 |
## 高级配置
### 序列化配置
```java
@Configuration
public class MessageConfig {
@Bean
public RedisSerializer