本文是【Gin-API系列】的最后一篇文章,簡單介紹如何在生產環境的部署架構和監控手段。 生產部署 部署架構 使用Nginx加Keepalived的方式搭建,可以達到高可用的效果,並可以橫向擴容 如何升級 Nginx負載均衡配置增加健康檢查機制 ...
參數設計 一套合格的API的服務需要規范的輸入請求和標准的輸出響應格式。 為了更規范的設計,也是為了代碼的可讀性和擴展性,我們需要對Http請求和響應做好模型設計。 請求 根據 Gin API系列 需求設計和功能規划 一 請求案例的設計, 我們在ip參數后面再增加一個參數oid來表示模型ID,只返回需要的模型model 響應 API的響應都需要統一格式,並維護各字段的文檔解釋 請求IP合法性檢查 ...
2020-07-27 15:01 0 944 推薦指數:
本文是【Gin-API系列】的最后一篇文章,簡單介紹如何在生產環境的部署架構和監控手段。 生產部署 部署架構 使用Nginx加Keepalived的方式搭建,可以達到高可用的效果,並可以橫向擴容 如何升級 Nginx負載均衡配置增加健康檢查機制 ...
場景需求 數據庫存儲2個模型,每個模型都有一個或多個IP字段,需要通過 Golang Http Api(Restful Api) 返回 IP 信息。 模型1 - 服務器 ID 主機名 IP 內存大小 磁盤大小 ...
生產環境的API服務我們都會部署在Linux服務器上,為了不受終端狀態的影響,啟動服務的時候會讓服務在后台運行。那么如何讓服務在后台運行呢,目前有2種常見的方法。 1、nohub 運行 表示忽略SIGHUP(掛斷)信號,終端退出的時候所發起的掛斷信號會被忽略。nohup一般會結合&參數 ...
在之前的文章介紹中我們已經完成了一個API服務的全鏈路請求設計。調用方式可以看Test目錄的代碼 重復的路由現象 截至目前我們只定義了一個路由(在main函數中),但現實中往往會定義多個路由實現多個API接口,而為了風格統一化(或是模塊化、版本區分等原因),我們也往往會將多個路由歸為一類 ...
為了能夠更方便的獲取請求相關參數,提高開發效率,我們可以基於請求的Content-Type識別請求數據類型並利用反射機制自動提取請求中QueryString、form表單、JSON、XML等參數到結構體中。 下面的示例代碼演示了.ShouldBind()強大的功能,它能夠基於請求自動提取JSON ...
日志是程序開發中必不可少的模塊,同時也是日常運維定位故障的最重要環節之一。一般日志類的操作包括日志采集,日志查詢,日志監控、日志統計等等。本文,我們將介紹日志模塊在Gin中的使用。 Golang如何打印日志 日志打印需要滿足幾個條件 重定向到日志文件 區分日志級別,一般 ...
在完成中間件的介紹和日志中間件的代碼后,我們的程序已經基本能正常跑通了,但如果要上生產,還少了一些必要的功能,例如鑒權、異常捕捉等。本章我們介紹如何編寫鑒權中間件。 鑒權訪問,說白了就是給用戶的請求增加一些限制條件,過濾掉不符合要求的請求。完善的鑒權模塊可以讓我們的服務跑得更加安全,特別是 ...
本文我們介紹生產環境上如何通過捕捉異常recovery來完善程序設計和提高用戶體驗。 Golang異常處理 golang 的異常處理比較簡單,通常都是在程序遇到異常崩潰panic之后通過defer調用延遲函數捕捉異常,並對異常信息進行輸出和記錄。 異常處理代碼 通過Gin ...