作業系統 : centos7.3.1611_x64
go語言版本:1.8.3 linux/amd64
influxdb版本:1.1.0
原始碼路徑: github.com/influxdata/influxdb/services/httpd
config_test.go : 配置測試
service.go :httpd服務主程式
listen.go :對***進行包裝,限制活動連線的數量
listen_test.go :對***包裝的測試
handler_test.go : 處理邏輯測試**
response_writer.go : http響應內容(支援csv、json格式)
該模組提供https服務、http服務、unixsocket服務
服務主要提供如下功能:
該結構所在檔案 : service.go
主服務結構如下:
type service struct
解釋如下:
tcp連線,用於提供http服務或https服務。
tcp伺服器繫結的服務位址及埠資訊。 對應配置檔案中的 bind-address 選項。
是否提供https服務,如果該標識為false,則提供http服務。 對應配置檔案中的 https-enabled 選項。
https證書路徑,使用https時有效。 對應配置檔案中的 https-certificate 選項。
https私鑰,使用https時有效。 對應配置檔案中的 https-private-key 選項。
用於限**務器最大連線數,該值為0時不限制。 對應配置檔案中的 max-connection-limit 選項。
error通道,暫時不知道怎麼用。
是否使用unix-socket,如果該標識為false,則不提供unix-socket服務(windows環境不適用)。 對應配置檔案中的 unix-socket-enabled 選項。
unix-socket檔案路徑,unix-socket開啟時適用。 對應配置檔案中的 bind-socket 選項。
unix_socket連線,用於提供unix_socket服務。
httpd->handler 物件
該結構所在檔案 : handler.go
snapshotter客戶端請求的資料結構如下:
解釋如下:
go語言的 net/http 庫的模式復用器。
influxdb版本資訊。
meta服務客戶端介面,指向 meta.client 結構(原始碼路徑: influxdb/services/meta/client.go), 用於操作meta資料。
database 函式 : 通過名字查詢資料庫,可用於判斷資料庫是否存在。
authenticate 函式 : 認證使用者資訊。
users 函式 :獲取系統中所有使用者的資訊。
user 函式 : 獲取系統中單個使用者的資訊。
資料查詢認證介面,指向 meta.queryauthorizer 結構(原始碼路徑: influxdb/services/meta/query_authorizer.go)。
authorizequery 函式 : 認證使用者資訊並執行資料查詢操作。
資料寫入認證介面,指向 meta.writeauthorizer 結構(原始碼路徑: influxdb/services/meta/write_authorizer.go)。
authorizewrite 函式 : 認證使用者資訊並執行資料寫入操作。
查詢執行器。
httpd服務狀態監控介面,指向 monitor.monitor 結構(原始碼路徑: influxdb/monitor/service.go)。
statistics 函式 : 統計伺服器監控資訊。
資料寫入介面,執向 coordinator.pointswriter 結構(原始碼路徑: influxdb/coordinator/points_writer.go)。
writepoints 函式 : 資料寫入功能。
httpd服務配置。
日誌相關。
日誌相關。
用於儲存httpd服務統計資訊。
該結構所在檔案 : listen.go
limitlistener是乙個***,它在任何給定時間都會限制活動連線的數量,當配置檔案中的max-connection-limit大於0的時有效。
資料結構如下:
type limitlistener struct}
該服務在influxdb主伺服器程式(influxd)中使用,具體如下:
在config中載入配置,在server中啟動httpd服務。
好,就這些了,希望對你有幫助。
原始碼閱讀之httpd服務.rst
歡迎補充
原始碼閱讀 Glide原始碼閱讀之with方法(一)
前言 本篇基於4.8.0版本 原始碼閱讀 glide原始碼閱讀之with方法 一 原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 大多數情況下,我們使用glide 就一句 但是這一句 裡面蘊含著成噸的 with方法有以下幾個過載方法 publi...
原始碼閱讀 Glide原始碼閱讀之load方法(二)
原始碼閱讀 glide原始碼閱讀之load方法 二 原始碼閱讀 glide原始碼閱讀之into方法 三 首先,load方法有以下幾個過載方法 public requestbuilder load nullable bitmap bitmap public requestbuilder load nu...
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...