您当前的位置: 首页 > 

GRPC: 如何优雅关闭进程(graceful shutdown)

阿里云云栖号 发布时间:2021-10-21 10:27:45 ,浏览量:4

简介: 本文将介绍优雅关闭 gRPC 微服务。在进程收到关闭信号时,我们需要关闭后台运行的逻辑,比如,MySQL 连接等等。

介绍

本文将介绍优雅关闭 gRPC 微服务。

什么是优雅关闭?

在进程收到关闭信号时,我们需要关闭后台运行的逻辑,比如,MySQL 连接等等。

我们将会使用 rk-boot 来启动 gRPC 服务。

请访问如下地址获取完整教程:

  • https://rkdev.info/cn
  • RK 文档 (备用)
安装
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

原文链接 本文为阿里云原创内容,未经允许不得转载。 

关注
打赏
1688896170
查看更多评论

阿里云云栖号

暂无认证

  • 4浏览

    0关注

    4522博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.5164s