讀取配置文件并啟動,在配置文件中設(shè)置的監(jiān)聽端口監(jiān)聽客戶端請求。
二七網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,二七網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為二七超過千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的二七做網(wǎng)站的公司定做!
收到客戶端連接請求后,啟動一個goroutine單獨處理該請求。
首選進(jìn)行登錄驗證,驗證過程完全兼容MySQL認(rèn)證協(xié)議,由于用戶名和密碼在配置文件中已經(jīng)設(shè)置好,所以可以利用該信息驗證連接請求是否合法。?
當(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ā)給客戶端。
先給結(jié)論:完全可以
商用實踐:
已經(jīng)通過很多大公司的商用實踐,例如B站,YY,包括字節(jié)跳動,國外更不用說了,Google,所以從這個角度上來說,已經(jīng)經(jīng)過大規(guī)模的實踐,所以如果你想用用于自己小網(wǎng)站的搭建是沒有任何問題,如果你想用于初創(chuàng)公司的使用,還是需要有自己的一定積累,至少有過實踐的經(jīng)驗
golang周邊:
java在國內(nèi)的強大,得益于它的生態(tài),各種組件百花爭鳴,例如消息中間件rocketmq,分庫分表sharding-jdbc,spring整個生態(tài),mybatis,jedis,elasticsearch,zookeeper,dubbo等等都非常齊全,這樣可以方便大家能夠快速地進(jìn)行公司業(yè)務(wù)開發(fā),可以減少重復(fù)造輪子
golang這幾年也開始逐漸發(fā)力,各個組件也開始完善起來,例如etcd,消息中間件nsq,從跟上解決數(shù)據(jù)量巨大問題,pingcap公司開發(fā)了線事務(wù)處理/在線分析處理的融合型數(shù)據(jù)庫產(chǎn)品TIDB,
web框架gin,beego,iris等等,也有各路大神提供了連接各個其他redis,elasticsearch等等組件,還是比較齊全的,rpc框架也有g(shù)o-mirco,rpcx等等,只要你想要用,基本上來說,golang的生態(tài)周邊還是比較全的,方便大家使用
golang的模塊管理
java的方便還得益于它的包管理,maven,gradle,這樣大大方便了大家的使用,可以提供大家的開發(fā)效率,而golang從1.12開始也開始有了自己內(nèi)嵌的包管理工具
golang的新特性
在這邊我并不是說golang好于java,但是golang畢竟屬于新一代的語言,它的并發(fā)模型CSP,和java的并發(fā)模型是有很大的區(qū)別的,并發(fā)模型的易用性,從根本上來說,是好于java的
再說golang目前最大的優(yōu)勢,docker和kubernetes,是目前github上最火的前20名項目,并且都是golang寫的,所以golang和docker,kubernetes集成有天然的優(yōu)勢
綜上所述,我覺得golang可以開發(fā)商用網(wǎng)站,不管你是做大型網(wǎng)站還是小型demo,都可以滿足你的要求
你搜一下kingshard這個插件,就是用go語言寫的MySQL插件。
可以支持分表,分庫。 在github上。
階段一:Python開發(fā)基礎(chǔ)
Python全棧開發(fā)與人工智能之Python開發(fā)基礎(chǔ)知識學(xué)習(xí)內(nèi)容包括:Python基礎(chǔ)語法、數(shù)據(jù)類型、字符編碼、文件操作、函數(shù)、裝飾器、迭代器、內(nèi)置方法、常用模塊等。
階段二:Python高級編程和數(shù)據(jù)庫開發(fā)
Python全棧開發(fā)與人工智能之Python高級編程和數(shù)據(jù)庫開發(fā)知識學(xué)習(xí)內(nèi)容包括:面向?qū)ο箝_發(fā)、Socket網(wǎng)絡(luò)編程、線程、進(jìn)程、隊列、IO多路模型、Mysql數(shù)據(jù)庫開發(fā)等。
階段三:前端開發(fā)
Python全棧開發(fā)與人工智能之前端開發(fā)知識學(xué)習(xí)內(nèi)容包括:Html、CSS、JavaScript開發(fā)、Jquerybootstrap開發(fā)、前端框架VUE開發(fā)等。
階段四:WEB框架開發(fā)
Python全棧開發(fā)與人工智能之WEB框架開發(fā)學(xué)習(xí)內(nèi)容包括:Django框架基礎(chǔ)、Django框架進(jìn)階、BBS+Blog實戰(zhàn)項目開發(fā)、緩存和隊列中間件、Flask框架學(xué)習(xí)、Tornado框架學(xué)習(xí)、Restful API等。
階段五:爬蟲開發(fā)
Python全棧開發(fā)與人工智能之爬蟲開發(fā)學(xué)習(xí)內(nèi)容包括:爬蟲開發(fā)實戰(zhàn)。
階段六:全棧項目實戰(zhàn)
Python全棧開發(fā)與人工智能之全棧項目實戰(zhàn)學(xué)習(xí)內(nèi)容包括:企業(yè)應(yīng)用工具學(xué)習(xí)、CRM客戶關(guān)系管理系統(tǒng)開發(fā)、路飛學(xué)城在線教育平臺開發(fā)等。
階段七:數(shù)據(jù)分析
Python全棧開發(fā)與人工智能之?dāng)?shù)據(jù)分析學(xué)習(xí)內(nèi)容包括:金融量化分析。
階段八:人工智能
Python全棧開發(fā)與人工智能之人工智能學(xué)習(xí)內(nèi)容包括:機器學(xué)習(xí)、數(shù)據(jù)分析 、圖像識別、自然語言翻譯等。
階段九:自動化運維開發(fā)
Python全棧開發(fā)與人工智能之自動化運維開發(fā)學(xué)習(xí)內(nèi)容包括:CMDB資產(chǎn)管理系統(tǒng)開發(fā)、IT審計+主機管理系統(tǒng)開發(fā)、分布式主機監(jiān)控系統(tǒng)開發(fā)等。
階段十:高并發(fā)語言GO開發(fā)
Python全棧開發(fā)與人工智能之高并發(fā)語言GO開發(fā)學(xué)習(xí)內(nèi)容包括:GO語言基礎(chǔ)、數(shù)據(jù)類型與文件IO操作、函數(shù)和面向?qū)ο?、并發(fā)編程等。