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

简介: 本文将介绍优雅关闭 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 entryport: 8080                      # Port of grpc entryenabled: 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 functionboot.AddShutdownHookFunc("shutdown-hook", func() {fmt.Println("shutting down")})// Bootstrapboot.Bootstrap(context.Background())// Wait for shutdown sigboot.WaitForShutdownSig(context.Background())
}

3.启动 main.go

$ go run main.go

4.ctrl-c

通过 ctrl-c 关闭程序,我们会看到打印如下信息。

shutting down

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Kubernetes 集群中使用 MetalLB 作为 Load Balancer(上)

作者 | Addo Zhang来源 | 云原生指北TL;DR网络方面的知识又多又杂,很多又是系统内核的部分。原本自己不是做网络方面的,系统内核知识也薄弱。但恰恰是这些陌生的内容满满的诱惑,加上现在的工作跟网络关联更多了,逮住机…

Java程序员情人节_盘点程序员情人节的表白,前端程序员最浪漫,后端不服来战...

今天是 2 月 14 日情人节,我看公众号后台有好多人在回复关键字:情人节表白代码。我想,我作为大家的校长,必须给大家送一波福利代码啊!我是真没想到,竟然很多程序员都想用代码表白,还整的挺浪漫的&#xff0…

GRPC: 如何实现分布式日志跟踪?

简介: 本文将介绍如何在 gRPC 分布式场景中,实现 API 的日志跟踪。 介绍 本文将介绍如何在 gRPC 分布式场景中,实现 API 的日志追踪。 什么是 API 日志追踪? 一个 API 请求会跨多个微服务,我们希望通过一个唯一的 ID…

一文搞懂物联网Modbus通讯协议

简介: 一般来说,常见的物联网通讯协议众多,如蓝牙、Zigbee、WiFi、ModBus、PROFINET、EtherCAT、蜂窝等。而在众多的物联网通讯协议中,Modbus是当前非常流行的一种通讯协议。它一种串行通信协议,是Modicon公司于1979年…

快看世界技术VP安尝思:从漫画到视频,如何用技术赋能创作

供稿 | 快看世界 2月25日,在火山引擎举办的视频云科技原力峰会上,快看世界技术VP安尝思受邀参加,并发表主题为《如何搭建轻量高效的视频技术体系》的演讲。 安尝思表示,快看视频内容的革命性变化来自于漫剧的推出,在过…

2021云栖大会丨阿里云发布第四代神龙架构,提供业界首个大规模弹性RDMA加速能力

简介: 10月20日,2021年杭州栖大云会上,阿里云发布第四代神龙架构,升级至全新的eRMDA网络架构,是业界首个大规模弹性RDMA加速能力。 10月20日,2021年杭州栖大云会上,阿里云发布第四代神龙架构。…

Rambus推出面向下一代数据中心的PCIe 6.0控制器

新闻摘要: 将先进的人工智能/机器学习、存储和网络应用的性能提升至64 GT/s优化了功耗、面积和延迟,全方位实现PCIe 6.0特性集成IDE引擎提供最先进的数据安全Rambus PCIe 6.0控制器框图 作为业界领先的芯片和IP核供应商,致力于使数据传输更…

统计指定的Java工程代码行数_Java统计指定格式文件数量及文件中代码行数

前言最近为了创新学分在申请软著,软著申请表上要求标注代码行数,而且还需要贴源代码。但是作为懒宅晚期患者,我感觉数代码行数和粘贴代码超级无聊。我就想到之前老师说一个学长用python写过类似的工具来统计代码行数,然后我就想Ja…

阿里云混合云Apsara Stack 2.0发布 加速政企数智创新

简介: 2021年10月21日,杭州 – 今日,阿里云于云栖大会正式发布Apsara Stack 2.0,从面向单一私有云场景,升级为服务大型集团云&行业云场景。新一代Apsara Stack不仅可以为政企定制稳定、安全、开放、智能的数字底座…

ArrayList源码浅析

简介: ArrayList作为我们开发中最常用的集合,作为极高频次使用的类,我们不妨阅读源码一谈究竟。 前言 ArrayList作为我们开发中最常用的集合,作为极高频次使用的类,我们不妨阅读源码一谈究竟。 介绍 ArrayList继承…

阿里云边缘云ENS再升级 四大场景应用加速产业数字化落地

简介: 云栖大会 | 于10月21日上午举办的边缘云应用升级与技术创新论坛中,阿里云边缘云ENS产品全面升级,从边缘云产品、技术、行业应用等维度全面阐述阿里云在边缘计算领域的技术积累、产品&解决方案沉淀、商业实践。 一年一度科技圈盛事…

在 Kubernetes 集群中使用 MetalLB 作为 LoadBalancer(下)

作者 | Addo Zhang来源 | 云原生指北在上一篇《在 Kubernetes 集群中使用 MetalLB 作为 LoadBalancer(上)》中,我们使用 MetalLB 的 Layer2 模式作为 LoadBalancer 的实现,将 Kubernetes 集群中的服务暴露到集群外。还记得我们在 …

java 不能使用foreach_为什么我不能在Java Enumeration上使用foreach?

Lawrence Dol..6我用两个非常简单的类解决了这个问题,一个用于Enumeration,一个用于Iterator.枚举包装如下:static class IterableEnumerationextends Objectimplements Iterable, Iterator{private final Enumeration enumeration;private boolean usedfalse;IterableEnumerat…

聚焦2021云栖大会,边缘云专场畅谈技术应用创新

简介: 本届大会以“前沿 探索 想象力”为主题,与业界同仁、合作伙伴共同打造一场数字时代的云上相聚。其中,边缘计算技术领域因5G快速发展而备受关注,阿里云边缘云专场吸引了数百位参会嘉宾驻足。 于10月21日上午举办的“边缘云应…

技术干货 | 闲鱼:一个优秀的 Push 平台,需要经历怎样的前世今生

简介: mPaaS 消息推送服务,快速集成多家厂商 Push 通道,有效提高用户留存率,提升用户体验。 编者荐语: 点击这里,了解 mPaaS 消息推送服务,快速集成多家厂商 Push 通道,有效提高用户…

「深入浅出」主流前端框架更新批处理方式

作者 | 👽来源 | 前端Sharing背景在不同的技术框架背景下,处理更新的手段各不相同,今天我们来探讨一下,主流的前端框架批量处理的方式,和其内部的实现原理。通过今天的学习,你将收获这些内容:主…

钉钉宜搭3.0发布!易连接、酷数据、更安全

简介: 10月20日,在2021云栖大会低代码分论坛上,阿里巴巴资深技术专家叶周全(花名骁勇)发布钉钉宜搭3.0版本。 10月20日,在2021云栖大会低代码分论坛上,阿里巴巴资深技术专家叶周全(…

基层数字化治理困境如何破局?

简介: 10月20日,2021云栖大会低代码分论坛如约举行。在这场低代码行业的盛会上,兰溪市大数据发展中心党组书记、主任芦建洪分享的内容获得了在场观众的热烈反响,兰溪市使用钉钉宜搭低代码破解基层数字化治理困境的成功经验也为全国…

循环队列的java结构_java数据结构之循环队列(数组实现)

package com.ws.队列.数组环形队列;//环形数组队列//判断满:尾1%队列长度头//添加数据:要(尾1)%数组长度//取出数据:要(头1)%数组长度 因为这两个都是循环的,相当于一个圆环,%数组长度就是转圈//队列有效数据个数&…

形式化验证工具TLA+:程序员视角的入门之道

简介: 女娲是飞天分布式系统中提供分布式协同的基础服务,支撑着阿里云的计算、网络、存储等几乎所有云产品。在女娲分布式协同服务中,一致性引擎是核心基础模块,支持了Paxos,Raft,EPaxos等多种一致性协议&a…