GRPC: 如何優雅關閉進程(graceful shutdown)


簡介: 本文將介紹優雅關閉 gRPC 微服務。在進程收到關閉信號時,我們需要關閉后台運行的邏輯,比如,MySQL 連接等等。

介紹

本文將介紹優雅關閉 gRPC 微服務。

什么是優雅關閉?

在進程收到關閉信號時,我們需要關閉后台運行的邏輯,比如,MySQL 連接等等。

我們將會使用 rk-boot 來啟動 gRPC 服務。

請訪問如下地址獲取完整教程:

安裝

go get github.com/rookie-ninja/rk-boot

快速開始

1.創建 boot.yaml

---
grpc:
  - name: greeter                   # Name of grpc entry
    port: 8080                      # Port of grpc entry
    enabled: true                   # Enable grpc entry

2.創建 main.go

通過 AddShutdownHookFunc() 來添加 shutdownhook 函數。

package main

import (
    "context"
    "github.com/rookie-ninja/rk-boot"
    "github.com/rookie-ninja/rk-gin/interceptor/context"
)

// Application entrance.
func main() {
    // Create a new boot instance.
    boot := rkboot.NewBoot()
    
    // Add shutdown hook function
    boot.AddShutdownHookFunc("shutdown-hook", func() {
        fmt.Println("shutting down")
    })

    // Bootstrap
    boot.Bootstrap(context.Background())

    // Wait for shutdown sig
    boot.WaitForShutdownSig(context.Background())
}

3.啟動 main.go

$ go run main.go

4.ctrl-c

通過 ctrl-c 關閉程序,我們會看到打印如下信息。

shutting down

原文鏈接
本文為阿里雲原創內容,未經允許不得轉載。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM