对于严重依赖数据的开发,对数据的实时性要求也很高的开发,采用什么模式好?

2回答

对于严重依赖数据的开发,对数据的实时性要求也很高的开发,采用什么模式好?

提问者 低头/再也看不见... 2017-12-27 521浏览
目前采用客户端每隔几秒向服务器发送一个请求,参数中一个bool标志位来确定是否是第一次查询,第一次查询就发送所有数据,否则就发送当前最新的一条。这样使用一个标识参数,还无法达到精准的查询某一天或某几天的数据。数据服务器加载在内存中,存放在一个list中,区别就在于是遍历list发送以便呢,还是发送最后一个。采用ByteBuffer做数据通信。数据的延时已经不可避免了,比如最原始的数据每隔30s刷新一次,服务器每隔30秒刷新一次,客户端同样也30s刷新一次,那么最差就可能有1分钟的延迟。若是大概同时有600人在线,那么差不多每秒就有基本20个请求。玩家操作的请求就忽略它,没有这么频繁。

快来消灭0回答吧

{{ dataList.answer_count | view-format }}回答
  • rainfu 2017-12-28 21:27
    专家回答
    还是不是特别明白当前的实际场景,服务器的数据量到底有多大?更新的频率如何?客户端的请求只是拉取数据吗,还是客户端也会请求更新数据?不同的场景下有不同的实现方式,要看最关心的指标是什么,需要根据实际情况进行有针对性的取舍,比如损失某一部分的能力来满足最核心的能力,楼主可以留下一个联系方式,我这边后续可以跟你电话交流,一起探讨详细的方案。
    1评论
  • ouranos 2017-12-28 11:32
    专家回答
    实时性要求高,是否可以考虑在原先基础上增加服务器主动通知客户端
    为了确保服务器下行通知包不丢, 可以引入下行包队列和同步序列号机制,结合客户端主动的断线重连,确保数据及时,另外为了减少数据传输可以增加数据的版本号机制
    1评论
  • {{ answer.user.NickName }} {{ answer.profession }} {{ answer.created_at | time-format }}
    专家回答
    {{{ answer.answer }}}
    {{ answer.answer_count | view-format }}评论
加载中... 查看更多回答