在項(xiàng)目開始之前,先根據(jù)大概業(yè)務(wù)設(shè)計日志系統(tǒng)。
成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、網(wǎng)站設(shè)計網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元日土做網(wǎng)站,已為上家服務(wù),為日土各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
一個好的日志系統(tǒng)在項(xiàng)目維護(hù)時非常重要。
我的日志系統(tǒng)中的內(nèi)容:
時間戳
日志調(diào)用地點(diǎn):文件+行號
報錯級別 致命 錯誤 警告 信息 調(diào)試
Summary
關(guān)鍵內(nèi)存Dump
這些信息方便排查故障。
配置文件:
讀取配置文件并啟動,在配置文件中設(shè)置的監(jiān)聽端口監(jiān)聽客戶端請求。
收到客戶端連接請求后,啟動一個goroutine單獨(dú)處理該請求。
首選進(jìn)行登錄驗(yàn)證,驗(yàn)證過程完全兼容MySQL認(rèn)證協(xié)議,由于用戶名和密碼在配置文件中已經(jīng)設(shè)置好,所以可以利用該信息驗(yàn)證連接請求是否合法。
當(dāng)用戶名和密碼都正確時,轉(zhuǎn)入下面的步驟,否則返回出錯信息給客戶端。
認(rèn)證通過后,客戶端發(fā)送SQL語句。
kingshard對客戶端發(fā)送過來的SQL語句,進(jìn)行詞法和語義分析,識別出SQL的類型和生成SQL的路由計劃。如果有必要還會改寫SQL,然后轉(zhuǎn)發(fā)到相應(yīng)的DB。也有可能不做詞法和語義分析直接轉(zhuǎn)發(fā)到相應(yīng)的后端DB。如果轉(zhuǎn)發(fā)SQL是分表且跨多個DB,則每個DB對應(yīng)啟動一個goroutine發(fā)送SQL和接收該DB返回的結(jié)果。
接收并合并結(jié)果,然后轉(zhuǎn)發(fā)給客戶端。
在Go語言項(xiàng)目中,常用的配置文件yaml、toml、json、xml、ini幾種,因?yàn)楸菊轮饕v解yaml配置文件的使用方法,其他幾種配置文件在這里就不展開了介紹了,大家有興趣可以自行百度。
yaml文件的語法網(wǎng)上有很多的教程,大家自行百度,這里也推薦兩個鏈接:
yaml文件解析使用的是github上第三方開源框架 gopkg.in/yaml.v2 ,下面詳細(xì)介紹安裝和使用的方法:
參考鏈接: