不安全的雙檢鎖 從其他語言轉入Go語言的同學經(jīng)常會陷入一個思考:如何創(chuàng)建一個單例? 有些同學可能會把其它語言中的雙檢鎖模式移植過來,雙檢鎖模式也稱為懶漢模式,首次用到的時候才...
不安全的雙檢鎖 從其他語言轉入Go語言的同學經(jīng)常會陷入一個思考:如何創(chuàng)建一個單例? 有些同學可能會把其它語言中的雙檢鎖模式移植過來,雙檢鎖模式也稱為懶漢模式,首次用到的時候才...
在上一篇文章中我實現(xiàn)了一個支持Debug、Info、Error等多個級別的日志庫,并將日志寫到了磁盤文件中,代碼比較簡單,適合練手。有興趣的可以通過這個鏈接前往:https:...
Golang標準日志庫提供的日志輸出方法有Print、Fatal、Panic等,沒有常見的Debug、Info、Error等日志級別,用起來不太順手。這篇文章就來手擼一個自己...
在go-micro中異步消息的收發(fā)是通過Broker這個組件來完成的,底層實現(xiàn)有RabbitMQ、Kafka、Redis等等很多種方式,這篇文章主要介紹go-micro使用R...
sqlx是Golang中的一個知名三方庫,其為Go標準庫database/sql提供了一組擴展支持。使用它可以方便的在數(shù)據(jù)行與Golang的結構體、映射和切片之間進行轉換,從...
前幾天有個同學想了解下如何在go-micro中做鏈路跟蹤,這幾天正好看到wrapper這塊,wrapper這個東西在某些框架中也稱為中間件,里邊有個opentracing的插...
go-micro v4默認使用mdns做服務發(fā)現(xiàn)。不過也支持采用其它的服務發(fā)現(xiàn)中間件,因為多年來一直使用Consul做服務發(fā)現(xiàn),為了方便和其它服務集成,所以還是選擇了Cons...
go-micro是一個知名的golang微服務框架,最新版本是v4,這篇文章將介紹go-micro v4開發(fā)RPC服務的方法及其運作原理。 基本概念 go-micro有幾個重...
在之前的文章中分別介紹了使用gRPC官方插件和go-micro插件開發(fā)gRPC應用程序的方式,都能正常走通。不過當兩者混合使用的時候,互相訪問就成了問題。比如使用go-mic...
go-micro是golang的一個微服務框架。 go-micro各個版本之間的兼容性問題一直被詬病,前幾年go-micro更是分化出了兩個分支: 一個延續(xù)了go-micro...
gRPC是Google發(fā)起的一個開源RPC框架,使用HTTP/2傳輸協(xié)議,使用Protocol Buffers編碼協(xié)議,相比RESTful框架的程序性能提高不少,而且當前流行...
背景 某個項目需要實現(xiàn)基礎軟件全部國產(chǎn)化,其中操作系統(tǒng)指定銀河麒麟,數(shù)據(jù)庫使用達夢V8,CPU平臺的范圍包括x64、龍芯、飛騰、鯤鵬等??紤]到這些基礎產(chǎn)品對.NET的支持,最...
一、背景: 最近在開發(fā)過程中遇到一個問題,項目上線后幾分鐘后就會報錯”數(shù)據(jù)庫連接池已滿、連接超時”,項目就宕掉了。后來細心的同事發(fā)現(xiàn)了可疑的點,操作數(shù)據(jù)庫后沒有將連接Clos...
背景 某個項目需要實現(xiàn)基礎軟件全部國產(chǎn)化,其中操作系統(tǒng)指定銀河麒麟,銀河麒麟就是一個Linux發(fā)行版,數(shù)據(jù)庫使用達夢V8,這個數(shù)據(jù)庫很多概念和Oracle相似,CPU平臺的范...
背景 某個項目需要實現(xiàn)基礎軟件全部國產(chǎn)化,其中操作系統(tǒng)指定銀河麒麟,數(shù)據(jù)庫使用DM8。 雖然在之前的文章中已經(jīng)成功模擬國產(chǎn)飛騰處理器,但是運行效率不高,所以這里的銀河麒麟操作...
背景 某個項目需要實現(xiàn)基礎軟件全部國產(chǎn)化,其中操作系統(tǒng)指定銀河麒麟v4,CPU使用飛騰處理器。飛騰處理器是ARMv8架構的,在之前的文章中介紹了使用QEMU模擬ARMv8架構...
grpcui類似Swagger UI,可以用來測試gRPC服務,使用起來特別簡單。 其原理是通過自動發(fā)現(xiàn)gRPC服務協(xié)議(當然前提是gRPC服務暴露了Protobuf協(xié)議),...