大屏展示司机实时位置

业务需求,消费位置点。根据连续位置点计算角度。
所以同一个司机的位置点必须被同一台机器消费。mq使用集群模式,同一个司机位置信息在同一个queue。每个消费者消费固定的queue,除非消费者节点数变化或者queue个数变化,需要重新分配。

1、改成局部有序,同一个司机位置点,生产有序,生产到同一个mq queue。
2、考虑到位置信息5s上传一个,消费不需要严格保证有序。使用并发消费即可。根据时间戳,消费到乱序之前的数据直接舍弃。

3、线上机器分为两个区,两个区使用不同的mq实例集群。司机长连接,上传的位置就会在同一个区mq上的同一个queue,如果是短连接上传位置点,司机就会ngix打到不同的机器,如果打到不同的qu,生产到不同的mq实例,存在问题

4、ElasticSearch主副本分片异步复制导致数据不一致,查询司机位置出现回跳现象。

5、ES主从同步修改为同步复制

6、ES存在缓存,写入成功后,缓存大小达到阈值或者到达最大时间,20s(可配置)刷新生成segment才可以被查询到

7、ES同步复制,ES主分片和副本分片缓存一致性可以得到保证,但是刷新时间都是20s但是时刻不同,一个刷新生成segment,有的分片没有刷新生成segment。造成查询数据不一致,查询到了旧数据,产生了位置回跳

8、每隔5s查询司机位置,将ES最大刷新时间修改为4s,避免位置回跳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值