精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何欺騙 Go Mod ?

存儲
Promethues 也有其自身局限性,其中影響最大的就是其數(shù)據(jù)的高可用方案和集群方案。監(jiān)控也是業(yè)務(wù)系統(tǒng)的重中一環(huán),不能因為監(jiān)控系統(tǒng)宕機(jī)導(dǎo)致報警無法及時發(fā)出。

[[420434]]

 hi,大家好,我是 haohongfan。

最近在做 prometheus 生態(tài)的 cortex 優(yōu)化工作,遇到一個比較坑的 go mod 的問題,這里分享一下。

我為什么將標(biāo)題稱為:如何欺騙 Go mod 呢?這個挺有意思的,這里先賣個關(guān)子,不過確實是突破了 Go mod 的相關(guān)特性。(嗯,曹大的 Go mod 十宗罪又可以增加一宗了)

在正式展開這個話題之前,需要簡單的介紹下 cortex 和 thanos 這兩個項目。

Prometheus 的局限性

說到業(yè)務(wù)開發(fā)基本上都離不開監(jiān)控系統(tǒng),Prometheus 做為云原生的寵兒,以優(yōu)秀的設(shè)計,靈活的使用方式,以優(yōu)異成績從 CNCF 順利畢業(yè),也是很多公司做監(jiān)控的首選。

但是呢,Promethues 也有其自身局限性,其中影響最大的就是其數(shù)據(jù)的高可用方案和集群方案。監(jiān)控也是業(yè)務(wù)系統(tǒng)的重中一環(huán),不能因為監(jiān)控系統(tǒng)宕機(jī)導(dǎo)致報警無法及時發(fā)出。

Prometheus 官方也有提出聯(lián)邦方案來解決集群問題,但是這個方案極其復(fù)雜而且很多問題還是解決不了,于是就造就了另外兩個 CNCF 的沙箱項目:cortex 和 thanos。這兩個項目都是為了解決 Promethues 的集群,高可用的。

由于這兩個項目要解決問題的目的是一致的,所以就會出現(xiàn)很多功能都是可以相互復(fù)用的,于是有趣的事情就發(fā)生了。

cortex

話說因為某些的需求,不得已需要更改下 thanos 的相關(guān)代碼。我本地調(diào)試的時候?qū)?cortex 依賴的 thanos 給 replace 了一下。

  1. replace github.com/thanos-io/thanos => /Users/hhf/goproject/cortex/thanos 

再等我編譯的時候,就編譯不過了。

  1. # github.com/sercand/kuberesolver 
  2. ../../../go/pkg/mod/github.com/sercand/kuberesolver@v2.1.0+incompatible/builder.go:108:82: undefined: resolver.BuildOption 
  3. ../../../go/pkg/mod/github.com/sercand/kuberesolver@v2.1.0+incompatible/builder.go:163:32: undefined: resolver.ResolveNowOption 

這就讓人很無奈,別著急,我們看看這個 kuberesolver 是被誰依賴的。

先看下被 replace 之前:

  1. ▶ go mod graph| grep kuberesolver 
  2. github.com/weaveworks/common@v0.0.0-20210419092856-009d1eebd624 github.com/sercand/kuberesolver@v2.1.0+incompatible 
  3. github.com/weaveworks/common@v0.0.0-20210112142934-23c8d7fa6120 github.com/sercand/kuberesolver@v2.1.0+incompatible 
  4. github.com/weaveworks/common@v0.0.0-20200206153930-760e36ae819a github.com/sercand/kuberesolver@v2.1.0+incompatible 
  5. github.com/weaveworks/common@v0.0.0-20201119133501-0619918236ec github.com/sercand/kuberesolver@v2.1.0+incompatible 
  6. github.com/weaveworks/common@v0.0.0-20200914083218-61ffdd448099 github.com/sercand/kuberesolver@v2.1.0+incompatible 
  7. github.com/weaveworks/common@v0.0.0-20200625145055-4b1847531bc9 github.com/sercand/kuberesolver@v2.1.0+incompatible 
  8. github.com/thanos-io/thanos@v0.13.1-0.20200731083140-69b87607decf github.com/sercand/kuberesolver@v2.4.0+incompatible 

可以看到正常版本下,kuberesolver@2.4.0 被 thanos 所依賴,kuberesolver@v2.1.0 被 weaveworks 所依賴。

replace 之后

  1. ▶ go mod graph| grep kuberesolver 
  2. github.com/weaveworks/common@v0.0.0-20210419092856-009d1eebd624 github.com/sercand/kuberesolver@v2.1.0+incompatible 

是不是很神奇,kuberesolver@v2.4.0 這個版本竟然消失了。由于 kuberesolver 的 v2.1.0 和 v2.4.0 是不兼容的,所以導(dǎo)致 replace 之后就無法編譯了。

Gomod replace 語義

其實這并不神奇,這個涉及到 Go mod 的 replace 語義,不過也是很容易讓人忽略的特性。

replace directives:(https://golang.org/ref/mod#go-mod-file-replace)

  1. replace directives only apply in the main module’s go.mod file and are ignored in other modules. See Minimal version selection for details. 

其實很簡單,replace 只對主模塊(也就是你的當(dāng)前項目)是生效的??梢宰鋈缦碌目偨Y(jié):

  • 主模塊的 replace 對于被依賴的模塊是不生效的
  • 被依賴的模塊的 go.mod 的 replace 對主模塊也是不生效的

所以,當(dāng) replace 之后,cortex 依賴的 thanos 的 replace 是不生效的。我們理一下依賴樹:

  • 主模塊 cortex => require github.com/weaveworks/common v0.0.0-20210419092856-009d1eebd624
  • weaveworks => requre github.com/sercand/kuberesolver v2.1.0+incompatible
  • 于是整體上 kuberesolver 就只有了 v2.1.0 了

這個邏輯是跟 gomod 的 replace 語義是吻合的,也就是 replace 之后編譯不過是正確的。

欺騙 gomod

那就更加神奇了,為何 cortex 直接 require thanos 就能編譯成功,按照 gomod replace 語義來說,這也是編譯不過的才是正確的。

因為根據(jù)文檔我們知道,replace 僅僅作用于主模塊,脫離了主模塊是一律不生效的,這個是毋庸置疑的。

我做了個實驗放在了 https://github.com/georgehao/gomodtestmain ,有興趣的可以試一下,這個能驗證 gomod 是遵循 gomod replace 語義 和 MVS (最小版本選擇)算法的。

問題基本陷入了僵局,我們?nèi)绾纹凭帜?

繼續(xù)使用 go mod graph 功能,來查看 cortex 依賴的 thanos 的依賴樹。

  1. github.com/thanos-io/thanos@v0.19.1-0.20210729154440-aa148f8fdb28 gopkg.in/yaml.v3@v3.0.0-20210107192922-496545a6307 
  2. github.com/thanos-io/thanos@v0.13.1-0.20210401085038-d7dff0c84d17 github.com/Azure/azure-pipeline-go@v0.2.2 
  3. github.com/thanos-io/thanos@v0.8.1-0.20200109203923-552ffa4c1a0d k8s.io/utils@v0.0.0-20191114200735-6ca3b61696b6 
  4. github.com/thanos-io/thanos@v0.13.1-0.20210204123931-82545cdd16fe gopkg.in/yaml.v2@v2.3.0 
  5. github.com/thanos-io/thanos@v0.13.1-0.20201030101306-47f9a225cc52 go.uber.org/goleak@v1.1.10 
  6. github.com/thanos-io/thanos@v0.13.1-0.20200807203500-9b578afb4763 go.elastic.co/apm/module/apmot@v1.5.0 
  7. .... 
  8. github.com/thanos-io/thanos@v0.13.1-0.20200731083140-69b87607decf github.com/gogo/protobuf@v1.3.1 

由于這個依賴樹太長(700多行),我就不貼了,基本上也能看出來,cortex 依賴了 thanos N 多個版本,其中在最后一個版本中的 go.mod 中我們發(fā)現(xiàn)了一個有意思的東西:

  1. require ( 
  2.   github.com/sercand/kuberesolver v2.4.0+incompatible // indirect 
  3. ) 

也就是鬧了半天,由于 thanos 某個很古老的版本的 gomod require kuberesolver@v2.4.0,讓 gomod 誤以為 cortex 依賴的 thanos 依然是 require 了 kuberesolver@v2.4.0 了。雖然 thanos 早就改成了 repace kuberesolver,但也就讓 cortex 順利編譯過去了。

這算不算 gomod 的 bug 呢?

為什么 cortex 會依賴 thanos 這么多版本呢?這就要回到開篇說的 cortex 和 thanos 功能復(fù)用的問題了。

目前 cortex 和 thanos 這個兩個項目,基本上是這么依賴的:

  1. cortex 1.9.0 -> thanos v0.19.1-0.20210729154440-aa148f8fdb28 
  2. thanos v0.19.1-0.20210729154440-aa148f8fdb28 -> cortex v1.8.1-0.20210422151339-cf1c444e0905 
  3. cortex v1.8.1-0.20210422151339-cf1c444e0905 -> thanos v0.13.1-0.20210401085038-d7dff0c84d17 
  4. .... 

cortex 與 thanos 之間的相互引用,就像俄羅斯套娃一樣,簡直就是 gomod 的噩夢。go mod replace 語義,竟然讓這兩個套娃給破解了。

如何解決

對應(yīng)如何cortex replace thanos 的問題,其實知道問題的根本所在,解決起來就很簡單了,有兩種方式吧:

  1. 由于 gomod MVS 算法,我們直接在主項目 cortex 中指定 kuberesolver 的版本為 v2.4.1
  2. 方案 1 僅對于向下兼容的項目比較適用,如果某項目沒有這個責(zé)任心的話,這么做可能是會出問題的,所以比較直接的解決辦法,直接修改 thanos 的 go.mod, 將 thanos 的所依賴的 kuberesolver 從 replace 挪到 require 中

 

 

責(zé)任編輯:武曉燕 來源: HHFCodeRv
相關(guān)推薦

2023-12-27 19:52:08

Go模塊命令

2010-09-16 15:39:18

2010-08-06 10:38:59

2021-01-16 10:39:11

欺騙攻擊網(wǎng)絡(luò)犯罪網(wǎng)絡(luò)安全

2021-03-01 18:48:21

Go管理工具

2019-04-12 09:28:46

2025-04-29 08:59:37

2014-09-29 09:01:33

2010-01-11 10:46:31

2012-10-11 10:11:09

2021-02-19 09:01:37

Go項目模塊

2019-05-07 09:29:19

欺騙蜜罐網(wǎng)絡(luò)攻擊

2019-03-22 07:44:01

2010-09-16 13:42:34

2013-09-17 09:08:07

ARP欺騙IP

2009-12-31 15:36:52

2020-11-11 10:13:08

PPID欺騙DLL注攻擊

2012-12-13 10:34:35

ARP欺騙

2022-08-08 08:48:15

Go版本偽版本

2025-02-12 08:50:22

點贊
收藏

51CTO技術(shù)棧公眾號

亚洲少妇一区二区三区| 亚洲a级在线播放观看| 黄色国产在线视频| 在线āv视频| 国产精一品亚洲二区在线视频| 久久精品视频99| 交换做爰国语对白| 福利在线导航136| 99re免费视频精品全部| 日本久久精品视频| 国产在线免费av| 日韩制服一区| 亚洲色图制服诱惑| 成人精品一区二区三区| 欧美成人国产精品高潮| 欧美变态挠脚心| 在线亚洲高清视频| 一本一道久久a久久精品综合 | 亚洲国产精品无码观看久久| 污视频软件在线观看| 亚洲激情精品| 在线观看视频99| 丰满少妇中文字幕| 无遮挡爽大片在线观看视频| 久久久久久99久久久精品网站| 国产精品视频自在线| 欧美三级在线免费观看| 亚洲高清极品| 7777精品伊人久久久大香线蕉经典版下载 | 欧美亚洲另类激情另类| 成人欧美一区二区三区黑人一| 国产精品美女久久久久| 精品国产1区2区| 在线视频福利一区| 少妇精品视频一区二区| 奇米影视7777精品一区二区| 欧美国产日产韩国视频| 亚洲自拍偷拍图| 91午夜精品| 欧美日韩在线不卡| 久久久久久久久久久视频| 777电影在线观看| av影院午夜一区| 成人深夜直播免费观看| 精品人妻一区二区三区免费看 | 亚洲白拍色综合图区| 免费日韩中文字幕| 国产黄色大片在线观看| 国产精品黄色在线观看| 欧美国产视频在线观看| 亚洲欧美强伦一区二区| 狠狠色狠狠色综合| 国产成人精品日本亚洲专区61| 久久久久香蕉视频| 欧美电影一区| 亚洲美女久久久| 天天躁日日躁狠狠躁av麻豆男男| 祥仔av免费一区二区三区四区| 色哟哟欧美精品| 成熟丰满熟妇高潮xxxxx视频| 成人在线观看免费网站| 欧美经典三级视频一区二区三区| 久草精品电影| 蜜臀av在线观看| 黑人精品欧美一区二区蜜桃| 国产精品免费小视频| 中文字幕免费高清在线观看| 黑人巨大精品欧美黑白配亚洲| 亚洲最大av网| 黄色aaa大片| 91尤物视频在线观看| 欧美日韩喷水| 毛片网站在线免费观看| 一区二区三区在线视频免费观看| 91网站在线观看免费| 都市激情国产精品| 色婷婷激情综合| 色婷婷一区二区三区av免费看| 91精品视频一区二区| 日韩一区二区三区电影在线观看| 国产精品一区二区无码对白| 久久99视频| 久久偷看各类女兵18女厕嘘嘘| 免费在线一级片| 久久国产日韩| 91免费视频网站| 少妇av在线播放| 国产欧美一区二区精品秋霞影院 | 欧美日韩视频专区在线播放| 亚洲第一成肉网| 久久男人av| 中文字幕精品一区二区精品| 精品国产欧美日韩不卡在线观看| 精品成人在线| 国产精品极品在线| www.色呦呦| 日韩欧美在线观看免费| 国产一区二区三区91| 伊人成人开心激情综合网| 国产精品99久久久久久成人| 亚洲精品乱码久久久久久蜜桃麻豆| 国产成人aa精品一区在线播放| 国产精品久久久久久免费免熟| 不卡av免费在线观看| 欧美日韩喷水| 色av手机在线| 欧美亚洲一区二区在线观看| 久草免费资源站| 成人一区而且| 91精品国产高清久久久久久91 | 日本一区视频在线播放| 伊人电影在线观看| 日本韩国欧美一区二区三区| 蜜桃色一区二区三区| 国产一区二区三区网| 久久久久久尹人网香蕉| 亚洲网站在线免费观看| 91视频国产观看| 欧美国产视频一区| 农村妇女一区二区| 亚洲精品一区二区三区婷婷月| 东方av正在进入| 免费人成黄页网站在线一区二区| 韩国成人av| 污影院在线观看| 欧美情侣在线播放| 精品一区二区三区蜜桃在线| 久久aⅴ乱码一区二区三区| 99精品国产一区二区| avtt亚洲| 欧美日韩一区二区不卡| 亚洲三区四区| 婷婷综合六月| 亚洲激情 国产| 国产亚洲精品久久777777| 久久99蜜桃精品| 视频一区不卡| 好看的中文字幕在线播放| 欧美日韩和欧美的一区二区| 国产人妻一区二区| 久久久噜噜噜久久狠狠50岁| 精品一区在线播放| 麻豆国产在线| 亚洲精品国产精品乱码不99按摩 | 国产精品偷伦免费视频观看的| 日韩av免费观影| 欧美日韩国产色视频| 熟妇人妻久久中文字幕| 日韩网站在线| 精品一区在线播放| 亚洲欧洲美洲av| 亚洲精选中文字幕| aaa人片在线| 91麻豆123| 久久女同性恋中文字幕| 中文字幕99| 国产精品久久久久久久久久久久久久久| 丝袜情趣国产精品| 国产男男gay体育生白袜| 亚洲欧美日韩系列| 亚洲欧美激情一区二区三区| 伊人影院久久| 久久久久久久久久久久久9999| 中文av在线全新| 亚洲欧美制服综合另类| 小泽玛利亚一区二区三区视频| 国产精品毛片高清在线完整版| 亚洲综合欧美在线| 亚洲国产精品日韩专区av有中文| 亚洲综合日韩在线| 日本а中文在线天堂| 亚洲人成电影网| 中文字幕欧美在线观看| 亚洲欧美日本韩国| 制服丝袜av在线| 国产欧美日韩一区二区三区在线| 久久久一本精品99久久精品66| 在线成人视屏| 九九精品在线播放| 午夜激情在线视频| 欧美婷婷六月丁香综合色| 污污的视频在线免费观看| 成人免费看视频| 国产免费视频传媒| 女人香蕉久久**毛片精品| 精品日本一区二区三区在线观看| 日韩成人高清| 欧美成人在线网站| 青春草在线观看| 91精品国产欧美一区二区成人| 日韩精品国产一区二区| 日本一区二区成人| 精产国品一区二区三区| 噜噜噜在线观看免费视频日韩| 在线视频91| 在线日本制服中文欧美| 成人免费看黄网站| 日韩伦理在线一区| 久久精品影视伊人网| 婷婷五月综合激情| 欧美福利一区二区| 欧美一级特黄视频| 伊人夜夜躁av伊人久久| 亚洲精品国产精品国自产网站| 国产呦精品一区二区三区网站| 日韩欧美一区三区| 中文字幕一区二区三区在线视频| 欧美激情www| 一区二区亚洲视频| 国产精品美女免费| 天堂av中文在线观看| 欧美成人第一页| 福利在线观看| 亚洲精品福利在线| 成人av一区二区三区在线观看| 在线一区二区视频| 波多野结衣国产| 亚洲免费av在线| 夜夜春很很躁夜夜躁| 99re8在线精品视频免费播放| 秋霞午夜鲁丝一区二区| 激情综合色播激情啊| 欧美成人精品欧美一级乱| 影音先锋日韩资源| 国产乱人伦精品一区二区三区| 亚洲草久电影| 亚洲成人a**址| 红桃成人av在线播放| 久久精品国产第一区二区三区最新章节| 99国内精品久久久久| 国产噜噜噜噜噜久久久久久久久| www.日韩| 青青草成人在线| 松下纱荣子在线观看| 欧美精品激情在线| 牛牛在线精品视频| 色综合导航网站| av网址在线| 另类天堂视频在线观看| 黄色在线观看网站| 久久久av网站| av在线播放观看| 欧美成人精品在线| 91麻豆国产福利在线观看宅福利| 精品国产一区二区三区四区在线观看| 北岛玲一区二区三区| 一个人www欧美| 在线观看免费版| 日韩视频免费大全中文字幕| 麻豆av在线免费看| 久久综合免费视频影院| 国产福利视频在线| 欧美成人一二三| av老司机免费在线| 97精品久久久中文字幕免费| 天天综合av| 国产精品黄色av| 日韩黄色碟片| 91入口在线观看| 超碰97久久| 久久青青草原一区二区| 国产成人精品免费视| 婷婷久久伊人| 亚洲综合激情在线| 国产成a人亚洲精v品在线观看| 亚洲精品少妇| 国产欧美高清在线| 久久精品噜噜噜成人av农村| 一区二区三区人妻| 91影院在线观看| 免费一级黄色录像| 亚洲视频在线观看一区| 国产亚洲欧美精品久久久www| 福利一区福利二区微拍刺激| 亚洲精品毛片一区二区三区| 在线电影一区二区三区| 亚洲欧美黄色片| 亚洲欧美日韩国产中文| 欧美成人hd| 欧美激情久久久| 亚洲成人短视频| 亚洲资源在线看| 五月国产精品| 国产成年人在线观看| 日韩视频一区二区三区在线播放免费观看| 日韩 欧美 高清| 狠狠色丁香久久婷婷综| 午夜一区二区三区免费| 中文字幕中文字幕一区| 国产69精品久久久久久久久久| 欧美亚洲国产一区二区三区| 精品黑人一区二区三区国语馆| 精品亚洲一区二区三区在线观看 | 国产精品美腿一区在线看| 欧美成年网站| 日韩福利视频| 影音先锋中文字幕一区| 九九精品久久久| 久久久噜噜噜久久人人看 | 欧美午夜电影一区| 女人18毛片水真多18精品| 中文字幕视频在线免费欧美日韩综合在线看 | 国产ts一区| 亚洲综合第一| 久久影院亚洲| 四虎成人免费视频| 中文字幕中文字幕一区| 日本熟女毛茸茸| 精品国产99国产精品| 在线观看a视频| 清纯唯美亚洲激情| 中文在线综合| 日韩视频在线观看视频| 日韩在线a电影| yy1111111| 有坂深雪av一区二区精品| 波多野结衣在线电影| 日韩av在线网| 日本动漫理论片在线观看网站| 国产精品一区二区三区免费视频| 婷婷精品在线观看| 分分操这里只有精品| 国产一区二区视频在线播放| 精品国产aaa| 在线一区二区视频| 国产色a在线| 国产91免费观看| 色棕色天天综合网| 国产在线青青草| 91丨九色丨蝌蚪丨老版| 国产精品xxxx喷水欧美| 精品对白一区国产伦| 色呦呦在线播放| 97欧洲一区二区精品免费| 天天天综合网| www.com久久久| 中文字幕日韩av资源站| 亚洲熟妇av乱码在线观看| 夜夜嗨av一区二区三区免费区 | 人成免费在线视频| 色婷婷综合久色| 国产在线一在线二| 国产精品第七十二页| 精品久久久久中文字幕小说| 日本www高清视频| 国产肉丝袜一区二区| 中文在线资源天堂| 日韩中文在线不卡| 国产精品国产亚洲精品| 国产成人一二三区| 成人亚洲一区二区一| www.国产成人| 亚洲毛片在线免费观看| 日韩欧美一区二区三区免费观看 | 成人国产1314www色视频| 欧美日韩国产成人精品| 日本在线不卡一区二区| 欧美日韩国产综合视频在线观看中文| 日本韩国在线观看| 欧美中文在线视频| 日本午夜一区| 日本在线观看视频一区| 亚洲一区二区三区四区在线 | 深夜福利91大全| 99精品在线免费观看| 欧美一级爱爱视频| av亚洲精华国产精华精华| 欧美国产成人精品一区二区三区| 亚洲网站在线观看| crdy在线观看欧美| 奇米777四色影视在线看| 成人av片在线观看| 人人妻人人爽人人澡人人精品| 中日韩美女免费视频网址在线观看| 四虎精品一区二区免费| 国产精品videossex国产高清| 99久久夜色精品国产网站| 69av视频在线观看| 久久国产精品首页| 人人网欧美视频| 中文av一区二区三区| 亚洲国产视频直播| 番号集在线观看| 99国内精品久久久久久久软件| 久久精选视频| 日韩a级片在线观看| 亚洲免费精彩视频| 久久久久久亚洲精品美女| 人妻有码中文字幕| 亚洲美女在线国产| 日本午夜在线视频| 18成人免费观看网站下载| 久热精品在线| 久久久久久久久久综合| 国产一区二区久久精品| 香港久久久电影| 久久久国产欧美| 亚洲国产aⅴ天堂久久| 91视频在线观看| 精品一区二区三区自拍图片区 |