记一次管道流的问题定位过程
背景:
云搜同一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 发送出来,使用外部工具进行补
记一次管道流的问题定位过程相关推荐
- 并发编程线程通信之管道流
前言 在并发编程中,需要处理两个问题:线程之间如何通信及线程之间如何同步.通知是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. 在共享内存的并发模型里, ...
- IO知识点整理(序列化,管道流,数据流,字节数组流,与编码)
一:序列化的问题 1.序列号的使用问题 关于在序列化中的序列号的使用问题,一般要是使用. 因为,每次要序列化的类产生都会产生一个一个新的序列号,如果将这个类的程序修改后,就会产生新的序列号,以前序列化 ...
- 管道流 pipedinputstream
public class StreamDemo3 { public static void main(String[] args) { try { //管道流 PipedInputStream in ...
- Java IO 之 管道流 原理分析
概述 管道流是用来在多个线程之间进行信息传递的Java流. 管道流分为字节流管道流和字符管道流. 字节管道流:PipedOutputStream 和 PipedInputStream. 字符管道流:P ...
- JAVA的IO编程:管道流
掌握线程通讯流(管道流)的使用 管道流的主要作用是可以进行两个线程间的通讯,分为管道输入流(PipeOutputStream)和管道输出流(PipeInputStream). 如果要想进行管道输出,则 ...
- 黑马程序员-10 IO流2 File,properties,合并流,对象持久化,管道流,RandomAccessFile...
------- android培训.java培训.期待与您交流! ---------- File 将文件和文件夹封装成对象 File类常见方法: 1,创建. boolean createNewFile ...
- nodeJS的管道流和链式流
Stream 是一个抽象接口,Node 中有很多对象实现了这个接口 四种流类型 Readable - 可读操作. Writable - 可写操作. Duplex - 可读可写操作. Transform ...
- Java IO5:管道流、对象流
前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...
- 系统学习 Java IO (六)----管道流 PipedInputStream/PipedOutputStream
目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为 ...
最新文章
- 机器学习实战 | 意大利Covid-19病毒感染数学模型及预测(附代码)
- 解决ssh无操作自动断开[转载,已经验证]
- 波卡链Substrate (7)Grandpa + Babe
- 干掉 if 语句,一个不留的那种!
- Redis基础数据结构内部实现简单介绍
- 5002.boost库之thread
- centos 修改密码_centos7忘记root密码怎么改
- 如何在 Mac 上快速输入 Apple 图标?
- A1055[The World's Richest]好题
- DotNet 程序集加载了不匹配版本的依赖程序
- 《Vision based autonomous driving - A survey of recent methods》读书笔记
- ROS 初学入门学习及资源推荐
- Go 如何打包与压缩文件
- 国仁老猫:抖音影视剪辑5种赚钱方法、18个素材网站、8.0剪辑方法防判搬运(建议收藏)
- 空间三点定圆的解算过程
- 送5本新出版的《剑指offer》
- 基于java web的在线考试系统(源码+论文)
- 安装keil5出现you are not logged in as an 'Administrator'
- 服务器怎样修改盘符,服务器怎样修改盘符
- 高手最爱的5大沟通技巧,管下属、谈客户都能用得上
热门文章
- 无法定位程序输入点kernel32.dll,如何修复kernel32.dll
- webpack 设置别名后 tslint报 TS(2307)错误
- 目前流行的装修风格_今年最流行的装修风格 2018年这六种风格强烈推荐
- 主题 12:实践案例集锦之接口设计
- 基于C读取PCM音频文件后进行平滑能量计算
- Object.assign()是深拷贝还是浅拷贝?
- 2.6亿中国人受益,搜狗、QQ等9款APP首批通过官方适老化认证
- 创建列表,循环向列表依次中放入1个数字,达到100个后 ,依次删除所有的元素,删除完后,继续循环向列表依次中放入1个数字 ,达到100个后,依次删除所有的元素.......依次类推
- 阿里云Centos8.2执行 yum install -y yum-utils 报错问题解决
- 微擎人人商城定位不精确问题处理办法