博客 / 列表

alwaysbeta - 微服務架構|go-zero 的自適應熔斷器

原文鏈接: go-zero 的自適應熔斷器 上篇文章我們介紹了微服務的限流,詳細分析了計數器限流和令牌桶限流算法,這篇文章來説説熔斷。 熔斷和限流還不太一樣,限流是控制請求速率,只要還能承受,那麼都會處理,但熔斷不是。 在一條調用鏈上,如果發現某個服務異常,比如響應超時。那麼調用者為了避免過多請求導致資源消耗過大,最終引發系統雪崩,會直接返回錯誤,而不是瘋狂調用這個服務。 本篇文章會介紹主流熔斷器

源碼學習 , 微服務 , 源碼 , 源碼分析 , go

alwaysbeta - 一個關於 += 的謎題

原文鏈接: 一個關於 += 的謎題 今天在看書過程中發現了一個問題,還挺有意思的,分享給大家。 下面兩個 Python 表達式會產生什麼結果? t = (1, 2, [3, 4]) t[2] += [5, 6] 給四個備選答案: t 變成 (1, 2, [3, 4, 5, 6])。 因為 tuple 不支持對它的元素賦值,所以會拋出 TypeError 異常。 以上兩個都不是。 以上兩個

編程 , 數據結構 , 程序員 , 對象 , Python

alwaysbeta - 使用 Go 語言實現二叉搜索樹

原文鏈接: 使用 Go 語言實現二叉搜索樹 二叉樹是一種常見並且非常重要的數據結構,在很多項目中都能看到二叉樹的身影。 它有很多變種,比如紅黑樹,常被用作 std::map 和 std::set 的底層實現;B 樹和 B+ 樹,廣泛應用於數據庫系統中。 本文要介紹的二叉搜索樹用的也很多,比如在開源項目 go-zero 中,就被用來做路由管理。 這篇文章也算是一篇前導文章,介紹一些必備知識,下一篇再

數據結構 , 算法 , 二叉樹 , go

alwaysbeta - Go 語言 select 都能做什麼?

原文鏈接: Go 語言 select 都能做什麼? 在 Go 語言中,select 是一個關鍵字,用於監聽和 channel 有關的 IO 操作。 通過 select 語句,我們可以同時監聽多個 channel,並在其中任意一個 channel 就緒時進行相應的處理。 本文將總結一下 select 語句的常見用法,以及在使用過程中的注意事項。 基本語法 select 語句的基本語法如下: sele

面試 , select , go

alwaysbeta - Go 語言 map 如何順序讀取?

原文鏈接: Go 語言 map 如何順序讀取? Go 語言中的 map 是一種非常強大的數據結構,它允許我們快速地存儲和檢索鍵值對。 然而,當我們遍歷 map 時,會有一個有趣的現象,那就是輸出的鍵值對順序是不確定的。 現象 先看一段代碼示例: package main import "fmt" func main() { m := map[string]int{ "a

面試 , map , go

alwaysbeta - Go 語言 map 是併發安全的嗎?

原文鏈接: Go 語言 map 是併發安全的嗎? Go 語言中的 map 是一個非常常用的數據結構,它允許我們快速地存儲和檢索鍵值對。然而,在併發場景下使用 map 時,還是有一些問題需要注意的。 本文將探討 Go 語言中的 map 是否是併發安全的,並提供三種方案來解決併發問題。 先來回答一下題目的問題,答案就是併發不安全。 看一段代碼示例,當兩個 goroutine 同時對同一個 map 進行

map , 併發 , go

alwaysbeta - Python 中刪除列表元素的三種方法

列表基本上是 Python 中最常用的數據結構之一了,並且刪除操作也是經常使用的。 那到底有哪些方法可以刪除列表中的元素呢?這篇文章就來總結一下。 一共有三種方法,分別是 remove,pop 和 del,下面來詳細説明。 remove L.remove(value) - None -- remove first occurrence of value. Raises ValueError if

編程 , List , 列表解析 , 程序員 , Python

alwaysbeta - Python 報錯 ValueError list.remove(x) x not in list 解決辦法

平時開發 Python 代碼過程中,經常會遇到這個報錯: ValueError: list.remove(x): x not in list 錯誤提示信息也很明確,就是移除的元素不在列表之中。 比如: lst = [1, 2, 3] lst.remove(4) Traceback (most recent call last): File "stdin", line 1, in modul

List , Python

alwaysbeta - 推薦 10 本 Go 經典書籍,從入門到進階(含下載方式)

書單一共包含 10 本書,分為入門 5 本,進階 5 本。我讀過其中 7 本,另外 3 本雖然沒讀過,但也是網上推薦比較多的。 雖然分了入門和進階,但是很多書中這兩部分內容是都包含了的。大家看的時候可以根據自己的情況,先打好基礎,再進行進階。 有的書是開源的,可以直接在線閲讀,有的有電子書,大家可以在這裏 GitHub 找到下載方式。如果條件允許的話,買正版是最好的。 入門 《Go語言趣學指南》

程序員書籍 , 書單 , 編程語言 , 書籍 , go

alwaysbeta - 測試小姐姐問我 gRPC 怎麼用,我直接把這篇文章甩給了她

原文鏈接: 測試小姐姐問我 gRPC 怎麼用,我直接把這篇文章甩給了她 上篇文章 gRPC,爆贊 直接爆了,內容主要包括:簡單的 gRPC 服務,流處理模式,驗證器,Token 認證和證書認證。 在多個平台的閲讀量都創了新高,在 oschina 更是獲得了首頁推薦,閲讀量到了 1w+,這已經是我單篇閲讀的高峯了。 看來只要用心寫還是有收穫的。 這篇咱們還是從實戰出發,主要介紹 gRPC 的發佈訂閲

rest , grpc , 超時 , publish-subscribe , go

alwaysbeta - Go 專欄|函數那些事

原文鏈接: Go 專欄|函數那些事 曾經很長一段時間,我都為自己是互聯網科技公司的一員而感到自豪,我覺得我們與眾不同。 我們的管理更扁平化,沒有那麼多官僚主義,充滿活力,朝氣蓬勃。而且我們的產品正在改變大家的衣食住行,我們正在改變世界。 但近幾年發生的一系列事件,都讓我的信心產生動搖,不停在捶打我:醒醒吧,兄弟,事實不是你想象的那樣。 我能做些什麼呢?不知道。 還是努力更文吧,爭取早日不做打工人。

function , go