【文件属性】:
文件名称:FishChatServer2:FishChatServer2
文件大小:313KB
文件格式:ZIP
更新时间:2021-02-02 09:27:09
docker kubernetes golang im DockerGo
FishChatServer2
目录
1说明
吸取了第一版的经验以及我们商业版的探索。第二版我更多的思考在不要过多的实现*,这个版本将有很多业务无关的代码去掉,并且一直靠靠拢微服务。部署方式可以支持:
普通部署
容器部署(Kubernetes + Docker)
2特性
3架构
3.1聊天设计方案
这里简单陈述一下消息的设计思路,如下
其中:
1消息是通过版本号维护的,是一个递增的int64整数,由idgen提供服务,每个用户都有一个独立的自增id
2新消息到达,服务端只负责发送给客户端一个轻量级的通知通知
3客户端收到notify后,发起同步请求
3.2存储方案
其中最关键的是HBase存储,所有的消息通过Kafka消费后将插入HBase中,消息存储的时候会带上递增的版本号。这样的客户端带上一个版本号来请求消息的时候,将只返回大于此版本号的消息列表。
4协议
在protocol目录下
external是对外的协议,采用protobuf实现
rpc是服务内部的调用,采用grpc
5数据模型
在doc/db目录下
6服务说明
进入服务器目录下
access
gateway
logi