GRPC: 如何优雅关闭进程(graceful shutdown)?-阿里云开发者社区

开发者社区> 尹东勋> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux下apache服务器安装,sqlite安装,apache启动,关闭,重启,编写cig程序进行测试,浏览器访问cig程序
 1安装ubuntu 14.04 64位操作系统 2安装apache和sqllite以及依赖的sqllite开发库 3配置目录 /etc/apache2 4 html页面目录 var/www/ 5 cgi-bin目录 /usr/lib/cgi-bin 6日志文件:/var/log/apache2 7站点配
1856 0
linux strace-跟踪进程的系统调用或是信号产生情况,lstrace-跟踪己丑年调用库函数情况,进程跟踪调试命令
本工具可以用来做大多数排除,比如mount一个NFS,很慢,找不出原因,我们可以使用strace命令来跟中mount这个经常所有的调用过程。 strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
1348 0
ORACLE查找并解除死锁进程
ORACLE查找并解除死锁进程 1、查找死锁进程 select /*+RULE*/v$lock.sid,decode(v$lock.type,        'MR', 'Media Recovery',        'RT','Redo Thread',        'UN','Use...
667 0
【RAC】关闭Clusterware 遇到CRS-2529,ORA-15097:
需要关闭整个集群,遇到CRS-2529,ORA-15097 错误 ~! grid@rac1:/home/grid/Opatch>srvctl stop asm  -n rac1  -o immediate       PRCR-1014 : 无法停止资源 ora.
657 0
【ORACLE】orcle10g后台进程
遇到一个ora_o00n_ 过多,导致: ORA-00020: maximum number of processes (100) exceeded WARNING: ASM communication error: op 0 state 0x0 (15055)...
669 0
如何关闭Windows7的UAC
Windows7的UAC有时候挺烦人的,就是装软件,更改系统设置什么的时候,老是弹出对话框,下面告诉你如何快速关闭Windows7 UAC 按键盘Win + r打开运行对话框,输入msconfig 你将看到以下窗口,选择工具选项页 选择“更改UAC设置”,然后点“启动” 如下图设置,拉到...
559 0
Android关闭应用中的所有Activity(一)
BaseActivity如下: package cc.c; import android.app.Activity; import android.
618 0
+关注
尹东勋
点目科技创始人
60
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载