yoyogo v1.7.6 增強程式優雅退出和K8s Readiness檢查

YOYOFx發表於2021-07-21

?? YoyoGo (Go語言框架)一個簡單、輕量、快速、基於依賴注入的微服務框架( web 、grpc ),支援Nacos/Consoul/Etcd/Eureka/k8s /Apollo等 .

framework desgin

 

本次更新增強了Kubernetes Readiness 健康檢查的能力,基本流程如下

  • old pod 未退出之前,先啟動 new pod
  • old pod 繼續處理完已經接受的請求,並且不再接受新請求
  • new pod接受並處理新請求的方式
  • old pod 退出

這樣整個服務重啟就算是成功了,如果 new pod 沒有啟動成功,old pod 也可以提供服務,不會對目前線上的服務造成影響。

 

 

 

執行在容器中的程式響應流程

程式在 docker 容器中執行,所以在服務釋出過程中,k8s 會向容器傳送一個 SIGTERM 訊號,然後容器中程式接收到訊號,開始執行 ShutDown

 

  

v1.7.6 更新內容

 修復內容:

  • fixed graceful stop and readiness bugs.
  • fixed parallel problem by mvc template, that match it for route path .
  • fixed read remote config hight priority then flags .

新增特性:

  • add endpoint /actuator/health/detail, and then output db,redis and more .
  • add endpoint /actuator/routers, and then output all route info list

v1.7.5 更新內容

框架依賴升級,獨立DI元件

新增特性:

  • Support grpc connection timeout with context. (fix)

 

v1.7.4 更新內容

應用模板升級

  • grpc 
  • xxl-job

框架依賴升級:
1. upgrade gRPC to v1.38.0
2. upgrade etcd to v3.5.0
3. upgrade protobuf to v1.5.2
4. upgrade go-redis to v8.11.0
5. upgrade go-grpc-middleware to v1.3.0
6. upgrade gorm to v1.21.11
7. upgrade logrus to v1.8.1
8. upgrade go2sky to v1.1.0
9. upgrade fasthttp v1.28.0

相關文章