微服务项目文档
总体框架:
这是一个基于微服务架构的即时通讯(聊天)应用项目。它将一个复杂的系统拆分成了多个独立的服务模块,以实现高效、可扩展的社交和通讯功能。该项目的主要功能模块包括:
1、语音识别子服务
语音转换子服务,用于调用语音识别 SDK,进行语音识别,将语音转为文字后返回给网关。
2、好友管理子服务
好友管理子服务,主要用于管理好友相关的数据与操作,主要有以下接口:
1、好友列表的获取:
当用户登录成功之后,获取自己好友列表进行展示;
2、申请好友:
搜索用户之后,点击申请好友,向对方发送好友申请;
3、待处理申请的获取:
当用户登录成功之后,会获取离线的好友申请请求以待处理;
4、好友申请的处理:
针对收到的好友申请进行同意/拒绝的处理;
5、删除好友:
删除当前好友列表中的好友;
6、用户搜索:
可以进行用户的搜索用于申请好友;
7、聊天会话列表的获取:
每个单/多人聊天都有一个聊天会话,在登录成功后可以 获取聊天会话,查看历史的消息以及对方的各项信息;
8、多人聊天会话的创建:
单人聊天会话在对方同意好友时创建,而多人会话需要调 用该接口进行手动创建;
9、聊天成员列表的获取:
多人聊天会话中,可以点击查看群成员按钮,查看群成员信息;
3、消息转发子服务
用于针对一条消息内容,组织消息的 ID 以及各项所需要素,告诉网关服务器一条消息应该发给谁。 通常消息都是以聊天会话为基础进行发送的,根据会话找到它的所有成员,这就是转发的目标。除此之外,转发子服务将收到的消息,放入消息队列中,由消息存储管理子服务进行消费存储。
4、消息存储子服务
消息管理子服务,主要用于管理消息的存储:文本消息,储存在 ElasticSearch 文档搜索服务中。文件/语音/图片,需要转储到文件管理子服务中。 除了管理消息的存储,还需要管理消息的搜索获取。
1、消息队列中的消息进行存储:
2、获取历史消息:
获取最近 N 条消息:用于登录成功后,点击对方头像打开聊天框时显示最近 的消息
获取指定时间段内的消息:用户可以进行聊天消息的按时间搜索
3、消息搜索:
用户可以进行聊天消息的关键字搜索
5、文件存储子服务
文件管理子服务,主要用于管理用户的头像,以及消息中的文件存储。
1、文件上传:
收到文件消息后将文件数据 转发给文件子服务进行存储。
2、文件下载:
用于获取用户头像文件数据,以及客户端用于获取 文件/语音/图片 消息的文件数据。
6、用户管理子服务
用户管理子服务,主要用于管理用户的数据,以及关于用户信息的各项操作。
1、用户注册:
用户输入用户名(昵称),以及密码进行用户名的注册。
2、用户登录:
用户通过用户名和密码进行登录。
3、验证码获取:
当用户通过手机号注册或登录的时候,需要获取短信验证码。
4、手机号注册:
用户输入手机号和短信验证码进行手机号的用户注册。
5、手机号登录:
用户输入手机号和短信验证码进行手机号的用户登录。
6、用户信息获取:
当用户登录之后,获取个人信息进行展示。