前文我們完成了日誌管理系統後台開發。
這次為日誌管理搭建乙個web管理平台,可以通過web端錄入專案和配置資訊,以及專案對應的日誌路徑和採集資訊,並且寫入etcd,
這樣通過之前編寫的日誌採集系統可以根據etcd採集對應的日誌。
web端採用beego框架進行開發,beego是乙個採用mvc三層架構設計的web框架。這裡闡述下web管理平台的架構和功能。
main函式中初始化外掛程式,並且啟動beego
func init_components() bool外掛程式初始化具體可以檢視我的原始碼,之後在最下方我給出原始碼鏈結。err = components.initdb()
if err != nil
err = components.initetcd()
if err != nil
return true
}func main()
beego.run()
}
接下來我們看看routers中路由規則的註冊
func init() , "*:loglist")logs.debug("enter index controller")beego.router("/log/create", &logcontroller.logcontroller{}, "*:logcreate")
}
p.layout = "layout/layout.html"
if err != nil
} if err != nil
return
}model通過查詢資料庫將專案資訊返回。這些資料儲存在mysql表中。這裡其實是通過orm對映,
將資料庫表的資料儲存在我們定義的結構體
createtime string `db:"create_time"`
developpath string `db:"develop_path"`
ip string
}資料庫表如下
我們點選專案申請,填寫專案資訊
提交後可以看到專案列表
同樣我們點選日誌申請,填寫資訊
檢視日誌資訊
資料庫表也儲存成功了
高併發實戰
參考書籍netty,redis,zookeeper高併發實戰 作者 尼恩 鏈結 netty是jboss提供的乙個j a開源框架,是基於nio的客戶端 伺服器程式設計框架,它既能開發高併發,高可用,高可靠性的網路伺服器程式,也可以開發高可用,高可靠的客戶端程式 乙個可以快速儲存的記憶體資料庫,redi...
redis實戰 高併發搶購案例
先普及一下,什麼叫超賣,訂單商品資料量大於商品庫存數量,就叫做超賣 那麼問題來了,為什麼會超賣呢?在 搶購中,假如庫存為100個,這時有100 000個併發請求過來了,最後庫存只剩1個時,假如還有1000個併發請求,如果這1000個請求都成功了,那最後庫存是不是變成了 999,這就是超賣。以上僅為理...
go語言高併發channel詳解
go語言中channel可以理解是乙個先進先出的佇列,通過管道進行通訊。csp 模型 傳統的併發模型主要分為 actor 模型和 csp 模型,csp 模型全稱為 communicating sequential processes,csp 模型由併發執行實體 程序,執行緒或協程 和訊息通道組成,實...