GRPC: 如何优雅关闭进程(graceful shutdown)
简介: 本文将介绍优雅关闭 gRPC 微服务。在进程收到关闭信号时,我们需要关闭后台运行的逻辑,比如,MySQL 连接等等。
介绍
【GRPC: 如何优雅关闭进程(graceful shutdown)】本文将介绍优雅关闭 gRPC 微服务。
什么是优雅关闭?
在进程收到关闭信号时,我们需要关闭后台运行的逻辑,比如,MySQL 连接等等。
我们将会使用 rk-boot 来启动 gRPC 服务。
请访问如下地址获取完整教程:
- https://rkdev.info/cn
- https://rkdocs.netlify.app/cn (备用)
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 mainimport (
"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
原文链接
本文为阿里云原创内容,未经允许不得转载。
推荐阅读
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 如何寻找情感问答App的分析切入点
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus使用queryWrapper如何实现复杂查询
- 如何在Mac中的文件选择框中打开系统隐藏文件夹
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- java中如何实现重建二叉树
- Linux下面如何查看tomcat已经使用多少线程
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 2019女表什么牌子好(如何挑选女士手表?)