原創(chuàng)文章,歡迎轉(zhuǎn)載。轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自IT人故事會(huì),謝謝!
原文鏈接地址:「實(shí)戰(zhàn)篇」開源項(xiàng)目docker化運(yùn)維部署-開篇(一)成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)10余年經(jīng)驗(yàn)成就非凡,專業(yè)從事做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文營(yíng)銷,一元廣告等。10余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來電!
『高級(jí)篇』承諾了大家要找一個(gè)互聯(lián)網(wǎng)開源項(xiàng)目進(jìn)行docker的容器化部署,國(guó)人最擅長(zhǎng)不是創(chuàng)新而是改造,騰訊不是都是走別人的人,讓別人無路可走。github和gitee里面很多相對(duì)說比較好的開源項(xiàng)目,并不建議完全抄襲,其實(shí)別人有現(xiàn)成的為啥不拿來用,還要自己寫,畢竟技術(shù)更新這么快,能在巨人的肩膀上,絕對(duì)不從海底慢慢爬。來說正式,這次我在網(wǎng)上找了一個(gè)不錯(cuò)的開源代碼,https://www.renren.io/community/project ,感謝作者的開源,咱們就在他的基礎(chǔ)上開始吧!
如果真對(duì)一個(gè)項(xiàng)目,做高負(fù)載,高可用,高性能部署方案。以互聯(lián)網(wǎng)上一個(gè)開源項(xiàng)目為例,一起說說分布式集群運(yùn)維部署整個(gè)過程。
如果采用單節(jié)點(diǎn),首選性能會(huì)很差,其次因?yàn)闆]有冗余節(jié)點(diǎn),一旦某個(gè)節(jié)點(diǎn)的宕機(jī),就會(huì)出現(xiàn)整個(gè)系統(tǒng)的業(yè)務(wù)停機(jī)。所有集群話的方案是必然的, 準(zhǔn)備采用5節(jié)點(diǎn)的MySQL集群,6節(jié)點(diǎn)的redis集群,3節(jié)點(diǎn)的tomcat集群,2個(gè)節(jié)點(diǎn)的nginx節(jié)點(diǎn)。除了上邊說到的集群,需要掌握haproxy和 nginx。還會(huì)使用keeplive做到雙機(jī)熱備,這樣部署后,高可用。這樣就可以做到高可用,高性能,高負(fù)載。
啟動(dòng)下數(shù)據(jù)庫(kù),跑一個(gè)java項(xiàng)目,運(yùn)行下前端的項(xiàng)目。根本看不到大型互聯(lián)網(wǎng)高負(fù)載,高可用,高性能,都覺得自己寫的代碼很牛,但是僅限于開發(fā)的環(huán)境,如果在開發(fā)環(huán)境java內(nèi)存溢出了,整個(gè)項(xiàng)目都看不了了,在開發(fā)環(huán)境下都是單節(jié)點(diǎn)的。也就是說你的代碼寫的在牛有什么用???在牛的代碼服務(wù)掛了也沒用啊 老鐵!只有把代碼部署到集群的環(huán)境下,才能體現(xiàn)出來高負(fù)載,高可用,高性能。所以集群必須有!
前端有集群,后端有集群,redis是集群,mysql是集群都是集群。只有使用了集群才能讓項(xiàng)目高可用,高性能,高可用。當(dāng)初我開發(fā)的項(xiàng)目都是一個(gè)mysql來執(zhí)行,一個(gè)mysql的響應(yīng)就很慢,數(shù)據(jù)庫(kù)使用了集群后,由多個(gè)數(shù)據(jù)庫(kù)集群來響應(yīng)請(qǐng)求,速度肯定比以前快的很多,如果某個(gè)數(shù)據(jù)庫(kù)的節(jié)點(diǎn)掛掉了出現(xiàn)了宕機(jī),還有提前的節(jié)點(diǎn)替代。集群多了是一方面,還需要負(fù)載均衡和雙機(jī)熱備,實(shí)際上比下圖要復(fù)雜的多。
主要不是說開發(fā)的事情,也不是開發(fā)業(yè)務(wù)的模塊上,重點(diǎn)是定位到技術(shù)經(jīng)理,如何將項(xiàng)目進(jìn)行集群的部署和集群的搭建上,我找的開源項(xiàng)目只是比較合適實(shí)戰(zhàn),如果老鐵你手里有現(xiàn)成的項(xiàng)目,可以使用自己的項(xiàng)目。
PS:除了高級(jí)篇之前的docker幾個(gè)系列還比較接地氣,如何將docker和實(shí)際的開發(fā)中串聯(lián)起來。讓docker真正的接地氣。找個(gè)項(xiàng)目就開始干!