在整个链路中,API层相当于长连网关层的服务端,也相当于服务层的客户端。
服务层包含有:私信、群聊、群发等。
API层
通过HTTP
或者RPC
的方式,去调用服务层
的各种服务,然后返回处理 成功
或者 失败
报文给 API层
。
服务层
处理成功之后,将消息存入MySQL
、HBase
等存储中,每一条消息都会有个版本号
,基于用户维度的,然后将消息写入 Redis
、MemcachedQ
、Kafka
等消息中间件中,由队列机层
来订阅这些消息中间件,再经过一系列的处理后,将最终消息Pub
到 Redis
中,长连网关层
的每一条服务器都可以Sub
到这些消息,可以选择在网关层中对消息进行GZIP
压缩,然后最终推送给客户端。