歡迎光臨
每天分享高質量文章

一週 Go World 新鮮事-2019W09

01

go-kit微服務:服務熔斷

 

在微服務架構中,單體服務被拆分為若干微服務,一個服務通常需要呼叫(網路方式)多個服務才能完成預期功能,服務的穩定性受其他服務整體穩定性的制約。若一個服務出現故障,將會影響服務消費方無法正常工作,並將影響逐步放大,甚至導致整個服務叢集崩潰,也就是服務雪崩效應。

為防止服務雪崩,研發人員採用了流量控制、改進快取、服務自動擴容、服務降級與熔斷等方式。本文將介紹服務熔斷,並使用go-kit+Hystrix實現微服務的熔斷方案。

原文連結:

https://juejin.im/post/5c7e564651882546c846c101

原文二維碼:

02

基於Mixin Network的Go語言比特幣開發 

 

透過本本文,你可以學到如下內容

1、如何建立一個比特幣錢包。

2、如何讀取比特幣錢包的餘額。

3、如何實現免手續費支付比特幣並1秒到賬。

4、如何將Mixin Network的比特幣提現到你的冷錢包或第三方交易所。

原文連結:

https://segmentfault.com/a/1190000018398339

原文二維碼:

 

03

Go 1.12 TLS 1.3 簡單測試

在《TLS 1.3 當前(2018.10)支援與部署之現狀》中,我們提到 Go 將在 1.12 中支援 TLS 1.3. 作為一個 Gopher, 終於在前幾天盼來了 golang 1.12 的釋出。但是從 release 日誌看,本次對選擇性的部分支援 TLS 1.3, 且預設處於關閉狀態:

 

    Go 1.12 adds opt-in support for TLS 1.3 in the crypto/tls package as specified by RFC 8446. It can be enabled by adding the value tls13=1 to the GODEBUG environment variable. It will be enabled by default in Go 1.13.

 

如果要開啟 TLS 1.3, 需要設定環境變數:GODEBUG=tls13=1.本次釋出的 TLS 1.3 的 cipher suite 無法配置,也不支援 0-RTT 樣式:

TLS 1.3 cipher suites are not configurable. All supported cipher suites are safe, and if PreferServerCipherSuites is set in Config the preference order is based on the available hardware.

Early data (also called “0-RTT mode”) is not currently supported as a client or server.

原文連結:

https://liudanking.com/sitelog/go-1-12-tls-1-3-test/

原文二維碼:

 

 

 

04

Go 1.12中值得關註的幾個變化

 

Go team如期在2月末釋出了Go 1.12版本。從Go 1.12的Release Notes粗略來看,這個版本相較於之前增加了go modules機制、WebAssembly支援的Go 1.11,變化略“小”。這也給下一個Go 1.13版本預留了足夠的“驚喜”空間:)。從目前的plan來看,Go 1.13很可能落地的包括:Go2的幾個proposals:Go 2 number literals, error values和signed shift counts等,以及最佳化版Escape Analysis等。

 

原文連結:

https://tonybai.com/2019/03/02/some-changes-in-go-1-12/

原文二維碼:

05

go語言實現自己的RPC:go rpc codec

 

RPC是遠端過程呼叫(Remote Procedure Call)的簡稱,透過RPC我們可以像呼叫本地方法一樣呼叫位於其他位置的函式。大家更常見的可能是HTTP API呼叫,簡單來對比的話,RPC比起HTTP呼叫封裝更完善,呼叫者不必手動處理序列化和反序列化,使用成本更低一些(雖然學習成本可能會更高)。

出於學習目的,這次的標的是使用go語言來實現一個自己的RPC。在現實世界裡,對於一個RPC工具,除了方法呼叫以外,人們更看重的是其他功能比如服務發現、負載均衡、熔斷降級之類的功能,這裡暫時不會涉及,而是僅關註實現一個可以工作的方法呼叫。

之前的文章裡大致瞭解了go語言自帶的rpc框架,其中就提到go rpc預留了codec介面,可以讓使用者在go rpc使用自己的序列化協議,這次就嘗試實現一個自己的codec來實現自己的RPC。

 

原文連結:

https://juejin.im/post/5c4d7005f265da61223ab198

原文二維碼:

 

職位推薦:

【上海、北京】趣頭條招Golang研發工程師及架構師

 

【北京、上海】今日頭條高階Golang工程師

 

【北京、杭州】滴滴招golang開發工程師

 

招聘詳情地址:https://gocn.vip/explore/category-8

 

Gopher China 2019 最新資訊

贊(0)

分享創造快樂