iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

golang 後端菜雞工程師學習雜記系列 第 17

Day 17 讀 Go Concurrency Patterns - Rob Pike IV

  • 分享至 

  • xImage
  •  

續上篇,Day 16 讀 Go Concurrency Patterns - Rob Pike III

在實際的狀況中,有可能發出 query 剛好就是傳送到比較慢的 server,但是我們又不想等太久,而且也不想丟掉搜尋的結果,解決辦法其中之一就是一次搜尋多個 replica server ,拿到最快回傳的那一個吧。

這裡就識做了一個 First function,拿取搜尋多個 replica 結果最快的一個
注意: First 會造成 goroutine leak,之後再來看怎麼改

接下來 google3.0 就完成啦,和 2.1 版的程式架構幾乎一樣,只是多了 First 的做法

Rob Pike 再次強調,我們沒使用傳統的 concunnency 工具就達成啦,透過 goroutine 和 channel 就能達到這樣的設計,程式架構也相當簡單。

做完這個 Google search 的總結,本來從很慢很脆弱的程式,最後變的快速且 robust 了


上一篇
Day 16 讀 Go Concurrency Patterns - Rob Pike III
下一篇
Day 18 wait group 的使用
系列文
golang 後端菜雞工程師學習雜記18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言