方便測試人員測試使用
// traceid 獲取ctx中span的traceid,若無則返回空字串
func
traceid
(ctx context.context)
string
}return
""}
和傳統單體服務不同, 微服務通常部署在乙個分布式的系統中, 並且乙個請求可能會經過好幾個微服務的處理,這樣的環境下錯誤和效能問題就會更容易發生, 所以觀察(observe)尤為重要, 這就是tracing的用武之地,
它收集呼叫過程中的資訊並視覺化, 讓你知道在每乙個服務呼叫過程的
耗時等情況
, 以便及早發現問題.
// 生成uuid
func
(c *basecontroller)
generateuuid
(ctx context.context)
string
uuid是universally unique identifier的縮寫,即通用唯一識別碼。uuid的目的是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過**控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人衝突的
uuid。
func
i***ceedmaxlength
(ctx context.context,text string
,maxlen int)(
error
)return
nil}
go 語言中 utf-8 包提供的 runecountinstring() 函式,統計 uncode 字元數量。
// 從header獲取校驗資訊
func
(c *basecontroller)
authheader
(ctx context.context)
(result *authheaderresult, err error
)for
_, key :=
range
string
} timestampstr := c.
convertheaderdata
(headers[
"timestamp"][
0]) timestamp, err := strconv.
atoi
(timestampstr)
if err !=
nil result =
&authheaderresult
result.timestamp =
int64
(timestamp)
return
}
// 驗證簽名
func
(c *basecontroller)
authsign
)error
return
nil}
func
(c *basecontroller)
generatesign
(nonce string
, timestamp int64
, secretkey string
)string
6、處理任務 LQH入職第三天
1 遠端連線mysql homebrew是一款mac os平台下的軟體包管理工具,擁有安裝 解除安裝 更新 檢視 搜尋等很多實用的功能。安裝包brew install 解除安裝包 brew uninstall brew search mysqlbrew install mysql 5.7 c 設定密...
LQH入職第四天
1 如何md5加密演算法 客戶端 鹽 字串 md5 伺服器端 鹽 字串 md5 資料庫 原理 如果是用的https則無需加密,因為https會將傳輸的檔案加密,不用擔心第三方會獲取途中的資料 2 md5 對稱加密 非對稱加密的比較區別 1 md5是一種不可逆的加密,一定記住是不可逆的。2 對稱的加密...
LQH入職第二天
1 從gitlib上拉下 命令 git clone https www.com.git 2 永久的配置go環境 使用 go env w 例如 go env w goprivate corp.example.com go env w go111module on 3 golang goproxy 設定...