原创 Go語言併發編程(4):sync包介紹和使用(下)-Once,Pool,Cond

sync包下:Once,Pool,Cond 一、sync.Once 執行一次 Once 簡介 sync.Once 是 Go 提供的讓函數只執行一次的一種實現。 如果 once.Do(f) 被調用多次,只有第一次調用會調用 f。 常用場景

原创 Go語言併發編程(2):channel 通道介紹和使用

一、簡介 channel 不僅可以用於 goroutine 間進行安全通信,還可以用於同步內存訪問。 而且 Go 社區強烈推薦使用 channel 通道實現 goroutine 之間的通信, 不要通過共享內存來通信,而應該通過通信來共享內

原创 Go語言併發編程(3):sync包介紹和使用(上)-Mutex,RWMutex,WaitGroup,sync.Map

一、sync 包簡介 在併發編程中,爲了解決競爭條件問題,Go 語言提供了 sync 標準包,它提供了基本的同步原語,例如互斥鎖、讀寫鎖等。 sync 包使用建議: 除了 Once 和 WaitGroup 類型之外,大多數類型旨在供低級庫

原创 golang常用庫包:redis操作庫go-redis使用(03)-高級數據結構和其它特性

Redis 高級數據結構操作和其它特性 第一篇:go-redis使用,介紹Redis基本數據結構和其他特性,以及 go-redis 連接到Redis https://www.cnblogs.com/jiujuan/p/17207166.h

原创 golang常用庫包:緩存redis操作庫go-redis使用(02)-Redis5種基本數據類型操作

前面一篇介紹Redis基本數據結構和其他特性,以及 go-redis 連接到Redis:https://www.cnblogs.com/jiujuan/p/17207166.html 這篇接着講基本數據類型的操作。 四、Redis基本數

原创 Golang Web 框架 Gin 基礎學習教程集合目錄

Gin Web 框架基礎學習系列目錄 01-quickstart 02-parameter 03-route 04-middleware 05-log 06-logrus 07-bind 08-validate 09-restful 10

原创 golang常用庫包:緩存redis操作庫go-redis使用

一、Redis數據結構和一些特性介紹 redis7.0 先來了解一下 Redis 的數據結構有哪些,它有什麼特性功能。 基本的 5 種數據結構: 字符串 string 列表 list 哈希 hash 集合 set 有序集合 sor

原创 Go微服務框架go-kratos實戰學習07:consul 作爲服務註冊和發現中心

一、Consul 簡介 consul 是什麼 HashiCorp Consul 是一種服務網絡解決方案,它能夠管理服務之間以及跨本地和多雲環境和運行時的安全網絡連接。Consul 它能提供服務發現、服務網格、流量管理和自動更新等功能。 Co

原创 Go語言併發編程(1):對多進程、多線程、協程和併發、並行的理解

一、進程和線程 對操作系統進程和線程以及協程的瞭解,可以看看我前面的文章: 對進程、線程和協程的理解以及它們的區別:https://www.cnblogs.com/jiujuan/p/16193142.html。 這篇文章我用了多張圖片,

原创 Go 中的反射 reflect 介紹和基本使用

一、什麼是反射 在計算機科學中,反射(英語:reflection)是指計算機程序在運行時(runtime)可以訪問、檢測和修改它本身狀態或行爲的一種能力。用比喻來說,反射就是程序在運行的時候能夠“觀察”並且修改自己的行爲。(來自wikipe

原创 小公司需要使用微服務架構嗎?

一、使用微服務的四大門派 2.1、跟風派 技術大環境分析,到目前爲止(2023.02)技術大環境: 各大公司都在宣傳微服務以及自家實踐情況 各種技術媒體也發佈很多關於微服務的文章 和別人討論技術相關的架構時,必然會提到微服務架構 這樣的

原创 kubernetes(k8s)基礎學習-kubernetes是什麼?有什麼用?

kubernetes(k8s)基礎學習-kubernetes是什麼? 一、認識 Docker Docker 是什麼 先來看看 Docker 的圖標: 一條鯨魚背上馱着四方形塊的物品,就像一條海運船上裝滿集裝箱,集裝箱裏裝載了各種各樣的物品

原创 微服務架構學習與思考(12):從單體架構到微服務架構的演進歷程

從單體架構到微服務架構的演進歷程 一、單體架構 1.1 什麼時候用單體架構 在創業初期或項目開始時,項目整體功能比較少,開發人員也少,且項目需要用最少時間開發出來,用 MVP 方式快速進行市場驗證是否可行,這時候就可以用單體架構進行快速開發

原创 HTTP2 協議長文詳解

一、HTTP2 簡介 HTTP2 是一個應用層傳輸協議,它是 HTTP 協議的第二個版本。HTTP2 主要是基於 google 的 SPDY 協議,SPDY 的關鍵技術被 HTTP2 採納了,因此 SPDY 的成員全程參與了 HTTP2 協

原创 分層架構設計總結

一、單體結構不分層 最開始開發項目時,由於需求較少,用一個單獨的工程文件就可以滿足開發的需求了,不需要進行劃分。 二、MVC 分層和三層 到後面需求越來越多,於是就把文件進行分解,怎麼分解?有人提出了 MVC 的分層方式。 MVC 分層是一