搭建高并发socke服务器
数据上行如下图所示:
终端:每个终端通过预先配置好的域名或者ip连接到socket服务器,每台socket服务器分配到的终端数按服务器配置进行分配,例如1核1G可分配800个终端连接到此服务器。
socket服务器:终端连接到socket服务器并收到心跳数据时,socket服务器把终端和此服务器的连接信息存储到redis数据库中。
举例,socket服务器1的ip地址为:172.168.1.100,终端1的唯一标识为:001,数据心跳间隔为2分钟,则redis存储的数据key为001,value为172.168.1.100,存储时长为2分02秒,超过时长未有新心跳数据,此redis数据失效。
socket服务器还通过消息队列将终端上传的数据入库,以便以后查询。
数据下行如下图所示:
应用层需下发消息到某台终端时,先通过查询redis,获取终端连接到的socket服务器,后通过rpc内部连接传送数据到socket服务器,socket服务器转发数据到终端。
ps:图中socket连接认证过程和socket数据解码过程未列举。