背景:

云搜同一query多次查询,结果数目不一致,或者排序不稳定?

经过排查,结果数目不一致,是因为副本间数据不一致导致(build请求edoc偶发超时),而云搜的svc模式并不能保证同一个query落到一个副本上,所以出现了同query多次请求结果变化

而,排序不稳定,部分是因为,当多个doc打分相同的情况下,排序规则是根据索引中的docid来排的(注意,非主键id,而是从1开始算的),此docid从1开始根据如索引时间来递增,而在多副本的的build中,不同doc进入索引的时机并不能保证!

问题:

1: svc name 请求的随机性问题

如果svc 到pod 能保证hash 规则,那么所有的问题都不会发现,但问题并未真正解决

2: build如何保证不超时?

目前定位到的现象是,build请求edoc,请求到达edoc就已经超过了超时阈值3s,edoc的请求耗时在ms级别,所以不是edoc处理逻辑的问题,而是网络请求的问题:

a: 是否是edoc 节点太少?

b: edoc svc 模式负载不均,有多大的影响?

c: 是否在集群网络中svc name 请求有天然的缺陷?

3: 快速修复策略

加大超时阈值,重试次数 @hxx 无法评估能解决到什么地步

补发流程,udp 发送出来,使用外部工具进行补

记一次管道流的问题定位过程相关推荐

  1. 并发编程线程通信之管道流

    前言 在并发编程中,需要处理两个问题:线程之间如何通信及线程之间如何同步.通知是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. 在共享内存的并发模型里, ...

  2. IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)

    一:序列化的问题 1.序列号的使用问题 关于在序列化中的序列号的使用问题,一般要是使用. 因为,每次要序列化的类产生都会产生一个一个新的序列号,如果将这个类的程序修改后,就会产生新的序列号,以前序列化 ...

  3. 管道流 pipedinputstream

    public class StreamDemo3 { public static void main(String[] args) { try { //管道流 PipedInputStream in ...

  4. Java IO 之 管道流 原理分析

    概述 管道流是用来在多个线程之间进行信息传递的Java流. 管道流分为字节流管道流和字符管道流. 字节管道流:PipedOutputStream 和 PipedInputStream. 字符管道流:P ...

  5. JAVA的IO编程:管道流

    掌握线程通讯流(管道流)的使用 管道流的主要作用是可以进行两个线程间的通讯,分为管道输入流(PipeOutputStream)和管道输出流(PipeInputStream). 如果要想进行管道输出,则 ...

  6. 黑马程序员-10 IO流2 File,properties,合并流,对象持久化,管道流,RandomAccessFile...

    ------- android培训.java培训.期待与您交流! ---------- File 将文件和文件夹封装成对象 File类常见方法: 1,创建. boolean createNewFile ...

  7. nodeJS的管道流和链式流

    Stream 是一个抽象接口,Node 中有很多对象实现了这个接口 四种流类型 Readable - 可读操作. Writable - 可写操作. Duplex - 可读可写操作. Transform ...

  8. Java IO5:管道流、对象流

    前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...

  9. 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream

    目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...

最新文章

  1. 机器学习实战 | 意大利Covid-19病毒感染数学模型及预测(附代码)
  2. 解决ssh无操作自动断开[转载,已经验证]
  3. 波卡链Substrate (7)Grandpa + Babe
  4. 干掉 if 语句,一个不留的那种!
  5. Redis基础数据结构内部实现简单介绍
  6. 5002.boost库之thread
  7. centos 修改密码_centos7忘记root密码怎么改
  8. 如何在 Mac 上快速输入 Apple 图标?
  9. A1055[The World's Richest]好题
  10. DotNet 程序集加载了不匹配版本的依赖程序
  11. 《Vision based autonomous driving - A survey of recent methods》读书笔记
  12. ROS 初学入门学习及资源推荐
  13. Go 如何打包与压缩文件
  14. 国仁老猫:抖音影视剪辑5种赚钱方法、18个素材网站、8.0剪辑方法防判搬运(建议收藏)
  15. 空间三点定圆的解算过程
  16. 送5本新出版的《剑指offer》
  17. 基于java web的在线考试系统(源码+论文)
  18. 安装keil5出现you are not logged in as an 'Administrator'
  19. 服务器怎样修改盘符,服务器怎样修改盘符
  20. 高手最爱的5大沟通技巧,管下属、谈客户都能用得上

热门文章

  1. 无法定位程序输入点kernel32.dll,如何修复kernel32.dll
  2. webpack 设置别名后 tslint报 TS(2307)错误
  3. 目前流行的装修风格_今年最流行的装修风格 2018年这六种风格强烈推荐
  4. 主题 12:实践案例集锦之接口设计
  5. 基于C读取PCM音频文件后进行平滑能量计算
  6. Object.assign()是深拷贝还是浅拷贝?
  7. 2.6亿中国人受益,搜狗、QQ等9款APP首批通过官方适老化认证
  8. 创建列表,循环向列表依次中放入1个数字,达到100个后 ,依次删除所有的元素,删除完后,继续循环向列表依次中放入1个数字 ,达到100个后,依次删除所有的元素.......依次类推
  9. 阿里云Centos8.2执行 yum install -y yum-utils 报错问题解决
  10. 微擎人人商城定位不精确问题处理办法