現(xiàn)象:
今天web開發(fā)人員反饋,在騰訊云對某一個客戶的某表數(shù)據(jù)執(zhí)行相同的查詢結(jié)果,有時候不返回數(shù)據(jù);
我們是按周區(qū)分索引的,數(shù)據(jù)量不大,去掉時間條件執(zhí)行查詢發(fā)現(xiàn)會交替出現(xiàn)? 命中21980和命中的8999結(jié)果;
解決:
1.首先簡單查詢其他的表或者其他的集群有沒有類似的問題,排除大環(huán)境問題;
2.查看今天的日志并沒有發(fā)現(xiàn)報錯;不過發(fā)現(xiàn)了一些WARN 日志,大概的意思主副本數(shù)據(jù)同步告警,如下:
[2023-05-04T07:17:16,497][WARN ][o.e.i.f.SyncedFlushService] [chates02] [indexName_2023-05-01][4] can't to issue sync id [dGHQ0df6Tw6cLThlfwRFMg] for out of sync replica [[indexName_2023-05-01][4], node[qg1VO946RB2JJZZneBn8ZA], [R], s[STARTED], a[id=ePOFKvq8S7K83nWlAQRG4Q]] with num docs [8077]; num docs on primary [19131]
3.執(zhí)行命令查詢主副本主片和副本的doc數(shù)發(fā)現(xiàn)個別主片和副本的doc數(shù)不一致,命令如下
http://esIp:9200/_cat/shards/indexName_2023-05-01
因為es查詢每次是隨機選擇主片和副本的數(shù)據(jù)返回,所以會出現(xiàn)每次查詢結(jié)果不一樣的問題;
當查詢到這里其實已經(jīng)可以通過重建副本解決當前問題現(xiàn)象。
4. 為什么會出現(xiàn)這個問題?為什么只有本周的索引有問題,以前的索引驗證了沒有此問題?以后萬一在重要的es集群再出現(xiàn)類似的問題,損失就太大了。
es寫數(shù)據(jù)的流程是先寫主片然后主片同步給副本,主片和副本是分布在不同的節(jié)點;隱隱約約猜測主副數(shù)據(jù)不一致 可能是腦裂或者節(jié)點間的通訊有異常。
5.繼續(xù)排查前幾天的日志,發(fā)現(xiàn)有一個WARN 日志,節(jié)點之間的通信超過30s,
對應(yīng)的 配置為discovery.zen.ping_timeout: 30s,這個配置已經(jīng)給的很長了,沒必要再設(shè)置;
[2023-05-02T14:29:53,355][WARN ][o.e.d.z.UnicastZenPing ? ] [chates02] failed to send ping to [{chates01}{qg1VO946RB2JJZZneBn8ZA}{XBBKiDAMS_2vj-c57D0HzQ}{esIp}{esIp:9300}{ml.machine_memory=33566519296, ml.max_open_jobs=20, xpack.installed=true, ml.enabled=true}]
org.elasticsearch.transport.ReceiveTimeoutTransportException: [chates01][esIp:9300][internal:discovery/zen/unicast]
?
6. 繼續(xù)查看配置?discovery.zen.minimum_master_nodes:1?
這是master選舉的規(guī)則,我們這個集群是局部業(yè)務(wù)的小集群,數(shù)據(jù)量很少,只有兩個節(jié)點;由此可以推斷是 節(jié)點間通信斷開,而又符合 master選舉機制>=1,導(dǎo)致集群腦裂;
7. 優(yōu)化:通知運維增加到奇數(shù)個節(jié)點數(shù),master 選舉規(guī)則設(shè)置為 (節(jié)點數(shù)/2)+1 ,由此該問題現(xiàn)象解決。
8.導(dǎo)致節(jié)點通信斷開的原因是什么?這個集群的數(shù)據(jù)量非常小,負載很低;猜測 有可能是當時內(nèi)存占滿了影響通信或者是云廠商的網(wǎng)絡(luò)有問題
查看當時的內(nèi)存占用,并沒有占滿,這個以后再說吧文章來源:http://www.zghlxwxcb.cn/news/detail-818870.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-818870.html
到了這里,關(guān)于elasticsearch相同查詢條件每次返回結(jié)果不一樣的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!