# chat **Repository Path**: agol/chat ## Basic Information - **Project Name**: chat - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # chat system ## system design 1. 异步消息处理 + 消息缓冲队列 + 水平扩展 2. 用户发送消息后, 不是直接广播, 先处理脏词, 再投递到IPC进程(grpc stream); 3. IPC进程收到消息后, 每一秒定时批量处理一次。 再广播给当前机器上的用户。 4. 只需要新启动IPC服务, 理论上就可以实现无限水平扩展;也可以结合服务注册、发现实现自动扩展。 5. 单词统计排序每秒一个桶,每个桶使用大根堆排序,最后再聚合排。 6. 脏词使用了AC, 也可以自己实现个简单的。