phpcurl 請(qǐng)求Chunked-Encoded data 遇到的一個(gè)問(wèn)題
2016-10-21 16:51 by 軒脈刃, 105 閱讀, 0 評(píng)論, 收藏, 編輯最早出現(xiàn)的問(wèn)題情況是提供es的部門(mén)在es的外部封裝了一個(gè)gateway做請(qǐng)求中轉(zhuǎn)。
當(dāng)我們轉(zhuǎn)換到gateway上之后,發(fā)現(xiàn)了問(wèn)題:
有的請(qǐng)求可以獲取到數(shù)據(jù),有的請(qǐng)求獲取不到數(shù)據(jù)。
仔細(xì)分析了業(yè)務(wù)代碼,抽取了一個(gè)出問(wèn)題的業(yè)務(wù)請(qǐng)求,這個(gè)業(yè)務(wù)請(qǐng)求里面包含了多次對(duì)es的請(qǐng)求,只有最后一個(gè)es請(qǐng)求拋出異常,其他都正常。
ps: 我們的業(yè)務(wù)是使用php寫(xiě)的,使用了https://github.com/elastic/elasticsearch-php這個(gè)包進(jìn)行es請(qǐng)求的。
初步分析
當(dāng)然,我們沒(méi)有把錯(cuò)誤信息對(duì)外,首先看我們自己的日志,看到的錯(cuò)誤信息是:
No alive nodes found in your cluster at elasticsearch/elasticsearch/src/Elasticsearch/ConnectionPool/StaticNoPingConnectionPool.php:51
這個(gè)錯(cuò)誤第一反應(yīng)是是不是新的這個(gè)gateway節(jié)點(diǎn)有問(wèn)題啊?但是想想這是不可能的,因?yàn)椴⒉皇撬姓?qǐng)求都不可以,而且找了gateway部門(mén)的同事問(wèn)了下,也不存在對(duì)請(qǐng)求單獨(dú)處理的邏輯。
那么繼續(xù)看到StaticNoPingConnectionPool.php
public function nextConnection($force = false) {
$total = count($this->connections); while ($total--) { /** @var Connection $connection */ $connection = $this->selector->select($this->connections); if ($connection->isAlive() === true) { return $connection;
} if ($this->readyToRevive($connection) ===
延伸閱讀
- ssh框架
2016-09-30
- 阿里移動(dòng)安全 [無(wú)線(xiàn)安全]玩轉(zhuǎn)無(wú)線(xiàn)電——不安全的藍(lán)牙鎖
2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe
2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】
2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞
2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention
2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明
2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解
2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析
2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二)
2017-07-26
學(xué)習(xí)是年輕人改變自己的最好方式