• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Fork me on GitHub
            隨筆 - 215  文章 - 13  trackbacks - 0
            <2017年7月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345


            專注即時(shí)通訊及網(wǎng)游服務(wù)端編程
            ------------------------------------
            Openresty 官方模塊
            Openresty 標(biāo)準(zhǔn)模塊(Opm)
            Openresty 三方模塊
            ------------------------------------
            本博收藏大部分文章為轉(zhuǎn)載,并在文章開頭給出了原文出處,如有再轉(zhuǎn),敬請(qǐng)保留相關(guān)信息,這是大家對(duì)原創(chuàng)作者勞動(dòng)成果的自覺尊重!!如為您帶來不便,請(qǐng)于本博下留言,謝謝配合。

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            相冊(cè)

            Awesome

            Blog

            Book

            GitHub

            Link

            搜索

            •  

            積分與排名

            • 積分 - 215511
            • 排名 - 118

            最新評(píng)論

            閱讀排行榜

            本文版權(quán)歸 張宴 所有,此處為技術(shù)收藏,如有再轉(zhuǎn),請(qǐng)于篇頭處保留原創(chuàng)作者及出處,以示尊重!
            作者:張宴
            原文:http://zyan.cc/post/491/

              對(duì)于創(chuàng)業(yè)型團(tuán)隊(duì)來說,服務(wù)器托管費(fèi)用+帶寬成費(fèi)用+運(yùn)維成本,是壓在頭上的三座大山。滿足業(yè)務(wù)性能需要,又要降低成本,盡快實(shí)現(xiàn)收支平衡,是當(dāng)務(wù)之急。

              一、不靠譜的 App Engine

              1、Google App Engine 云服務(wù)在國外的成功,不代表國內(nèi)巨頭們各種 *AE 仿造品的成功。在微博上搜搜就可以看到小伙伴們吐槽的各種不穩(wěn)定,另外,*AE們對(duì)資源使用最大數(shù)各種規(guī)定限制,加上為了計(jì)費(fèi)、閹割功能的各種限制,使它的價(jià)格優(yōu)勢(shì)成為雞肋。*AE們就好比100M共享帶寬的小區(qū)寬帶,以低價(jià)賣給每個(gè)上網(wǎng)用戶5M的帶寬,前幾十個(gè)用戶感覺這網(wǎng)速真不錯(cuò),等他賣了100個(gè)以上用戶5M帶寬,而這部分用戶白天上班去了,晚上下班回來都在上網(wǎng),其中又有一部分看視頻、BT下載,于是乎,白天網(wǎng)速快,晚上慢得要死,連200K帶寬都達(dá)不到。要知道,不怕神一樣的對(duì)手,就怕豬一樣的隊(duì)友,在國內(nèi)的 App Engine 環(huán)境下,水平參差不齊的開發(fā)者的代碼質(zhì)量、習(xí)慣性的資源濫用、別人網(wǎng)站被攻擊殃及池魚對(duì)*AE性能的影響,導(dǎo)致*AE的穩(wěn)定性非常差。

              2、所以,*AE們也意識(shí)到公共 App Engine 不穩(wěn)定,所以又推出專用 App Engine,但費(fèi)用一下就翻了很多倍。所以,*AE只是個(gè)人博客、個(gè)人開發(fā)者玩玩的工具,真正用作項(xiàng)目,還是需謹(jǐn)慎。根據(jù)實(shí)際的經(jīng)驗(yàn),*AE們還真不如VPS穩(wěn)定。



              二、成本低的小而美VPS

              1、對(duì)于初創(chuàng)團(tuán)隊(duì)來說,購買服務(wù)器、交換機(jī),托管服務(wù)器費(fèi)用、帶寬月使用費(fèi),是極其昂貴的。購買可以彈性升級(jí)硬件配置的云服務(wù)VPS,是降低成本不錯(cuò)的選擇。國內(nèi)VPS,1G內(nèi)存、1~2核CPU、1M帶寬、多線BGP,大概價(jià)格在100元/月左右,支持備案,可以作為最低入門選擇,有條件可以購買兩臺(tái)互為熱備,阿里云主機(jī)可以作為參考。大多數(shù)VPS服務(wù)商使用的都是廉價(jià)的SATA磁盤。如果你對(duì)磁盤IO要求較高,可以選擇提供有SAS磁盤的IAAS云主機(jī)服務(wù)商,比如UCloud。

              2、市場(chǎng)上的VPS商家主要有 Xen、OpenVZ、KVM 三種開源的虛擬化技術(shù)。全虛擬化的 Xen 更像獨(dú)立主機(jī),服務(wù)器資源按VPS實(shí)際大小平均分配,一般無法超售。半虛擬化的 OpenVZ 在同樣的性能測(cè)試下,會(huì)比 Xen 高一些,但是,一臺(tái)物理內(nèi)存16G的服務(wù)器,可以分配出總內(nèi)存大小超過16G很多倍的VPS,服務(wù)商可以超售,想賣多少臺(tái)VPS就可以賣多少臺(tái),所以不推薦使用。KVM 在最新的 Linux 發(fā)行版中,已經(jīng)是集成,但是,商業(yè)化應(yīng)用還不成熟,基于 KVM 的 VPS 服務(wù)商很少。

              3、VPS的操作系統(tǒng),建議選擇64位的Linux。在32位Linux下,PHP能給處理的整數(shù)不能超過正負(fù)2^31=2147483648,如果以后接入新浪微博、淘寶、騰訊等第三方開放平臺(tái),他們的接口里會(huì)有超過32位的整數(shù)(比如新浪用戶ID、淘寶商品ID)。如果不幸使用32位Linux,你只能將這些整數(shù)當(dāng)成字符串處理了,以后配合Sphinx等搜索引擎,會(huì)非常麻煩。

              4、現(xiàn)在,可以在北京進(jìn)行備案的域名有:國際域名 .com .net .org,國內(nèi)域名 .cn .com.cn .中國,國別域名 .cc,其他的域名均不能進(jìn)行備案。僅北京有限制,其它省市正常提交備案即可。我們?cè)瓉砩暾?qǐng)的 .me 域名,在北京無法備案,后來只好拿到蘇州去備案了。所以,在選擇域名的時(shí)候,需要慎重。

              5、使用 VPS,一定要定期在本地,做好數(shù)據(jù)備份,不要相信所謂的 7*24服務(wù),99.99%安全穩(wěn)定性,只要有人的VPS出問題了,都?xì)w為那 0.01%。



              三、應(yīng)對(duì)峰值帶寬的云存儲(chǔ)

              1、對(duì)于DAU(日活躍用戶)過十萬的網(wǎng)站、APP應(yīng)用來說,CDN或云存儲(chǔ)是必需品。使用云存儲(chǔ)不是因?yàn)榇鎯?chǔ)空間,因?yàn)橐粔K幾TB的SATA磁盤很便宜,使用云存儲(chǔ)是因?yàn)楦叱銎骄鶐捴祹妆吨翈资兜姆逯祹挕W鍪謾C(jī)APP應(yīng)用,峰值帶寬更集中,當(dāng)你向所有用戶群發(fā)PUSH一條消息,用戶被喚醒打開APP應(yīng)用,幾分鐘的時(shí)間,會(huì)消耗幾十倍的帶寬峰值。圖片、下載,是最主要的帶寬消耗者。也許,數(shù)據(jù)接口API只需不到1M的帶寬,而圖片對(duì)帶寬的峰值需求則會(huì)達(dá)到100M。為了幾分鐘的峰值,去購買100M昂貴的帶寬,其他時(shí)間帶寬都空閑,是一件非常奢侈的事。

              2、國內(nèi)提供云存儲(chǔ)服務(wù)的商家有很多,真正好用得卻不多,提供FTP等公共通用協(xié)議的云存儲(chǔ)更是微乎其微。使用第三方云服務(wù),切忌千萬不要吊死在一棵樹上。支持FTP等公共協(xié)議,如果將來有問題,能夠方便的進(jìn)行數(shù)據(jù)遷移和技術(shù)替代。如果云服務(wù)廠商一直能夠提供優(yōu)質(zhì)的服務(wù),那么,也就可以長期使用他們的云服務(wù)。相信優(yōu)秀的云存儲(chǔ)提供商,是不會(huì)懼怕這一點(diǎn)的。

              3、之前,我用過阿里云的開放存儲(chǔ)服務(wù)OSS,但是,穩(wěn)定性比起阿里云主機(jī)ECS等其他服務(wù),要差多了。下面是用阿里云自家的云監(jiān)控,監(jiān)控最近一個(gè)月阿里云主機(jī)和OSS上的文件,云主機(jī)的可用性99.99%,而OSS可用性只有97.83%,月宕機(jī)累積時(shí)間31.27小時(shí)。而OSS每次一遇到升級(jí),就更坑爹了,不多說,自己看他們的公告吧( http://bbs.aliyun.com/read.php?tid=146819http://bbs.aliyun.com/read.php?tid=141828http://bbs.aliyun.com/read.php?tid=139381 ):

              點(diǎn)擊在新窗口中瀏覽此圖片

              點(diǎn)擊在新窗口中瀏覽此圖片


              4、后來,本博客的圖片、附件下載,改用了又拍云存儲(chǔ)。相比于其他的云存儲(chǔ),又拍云支持FTP上傳、下載管理文件,同時(shí)對(duì)于圖片類文件的處理功能,也比較強(qiáng)大:
            (1)、支持縮略圖&水印,可以支持自定義版本:限定寬度,高度自適應(yīng);限定高度,寬度自適應(yīng);限定最長邊,短邊自適應(yīng);限定最短邊,長邊自適應(yīng);限定寬高;等比縮放等多種縮略模式。

              點(diǎn)擊在新窗口中瀏覽此圖片

              示例:
              原圖:http://yphoto.b0.upaiyun.com/test/gzhd.jpg
              限定寬度(600px),高度自適應(yīng):http://yphoto.b0.upaiyun.com/test/gzhd.jpg_b
              限定最長邊(100px),短邊自適應(yīng):http://yphoto.b0.upaiyun.com/test/gzhd.jpg_100

              當(dāng)然,通過 Nginx 的 image_filter 也可以實(shí)現(xiàn)其中的限寬或限高自適應(yīng)功能、并緩存在本地,只是功能要少,缺少了又拍云存儲(chǔ)的CDN加速功能。Nginx image_filter 配置示例:
            http
            {
              proxy_cache_path /Data/cache/nginx/app levels=1:2  keys_zone=cache_app:200m inactive=7d max_size=10g;

               upstream view_store_server_pool{
                  server 192.168.1.2:80;
                server 192.168.1.3:80;
              }

              server {
                server_name  view.store.zyan.cc;

                access_log  off;
                location / {
                  proxy_cache_valid  200 600s;
                  expires 600s;
                  proxy_pass http://view_store_server_pool;
                  }

                location ~ /resize_width/(\d+)/(.*) {
                  set $width $1;
                  rewrite ^/resize_width/(\d+)/(.*) /$2 break;
                  image_filter   resize  $width -;
                  image_filter_jpeg_quality  90;
                  image_filter_buffer 10m;
                  proxy_cache cache_app;
                  proxy_cache_valid  200 600s;
                  expires 600s;
                  proxy_pass http://view_store_server_pool;
                  }

                location ~ /resize_height/(\d+)/(.*) {
                  set $height $1;
                  rewrite ^/resize_height/(\d+)/(.*) /$2 break;
                  image_filter   resize  - $height;
                  image_filter_jpeg_quality  90;
                  image_filter_buffer 10m;
                  proxy_cache cache_app;
                  proxy_cache_valid  200 600s;
                  expires 600s;
                  proxy_pass http://view_store_server_pool;
                }
              }
              ......


              (2)、又拍云存儲(chǔ)支持 Token 防盜鏈。對(duì)于圖片類防盜鏈來說,判斷域名、Reffer就夠了。但是對(duì)于軟件下載等防盜鏈來說,Reffer等信息都可以偽造,比較靠譜的方法,還是Token防盜鏈。

              點(diǎn)擊在新窗口中瀏覽此圖片



              四、可選的關(guān)系型數(shù)據(jù)庫服務(wù)(即 MySQL 服務(wù))

              1、資源消耗的大戶在于 MySQL,影響整體性能的因素也在于 MySQL。對(duì)于創(chuàng)業(yè)型團(tuán)隊(duì)來說,不要過度依賴 MySQL,不要將高并發(fā)業(yè)務(wù)邏輯都用 MySQL 來處理。在 MySQL 前加個(gè) Memcached 做 SQL 查詢緩存,跟 MySQL 的 Query Cache 區(qū)別不大,治標(biāo)不治本,命中率不高,還降低了實(shí)時(shí)性。現(xiàn)在的移動(dòng)應(yīng)用,交互性比較強(qiáng),實(shí)時(shí)性要求非常高,Web 時(shí)代緩存幾分鐘的老方法,已經(jīng)不能適合移動(dòng)互聯(lián)網(wǎng)時(shí)代的需求。因此,MySQL 只適合存儲(chǔ)一些并發(fā)查詢量不大的核心數(shù)據(jù),或作為數(shù)據(jù)的備份,只寫入不查詢。我遇到過很多創(chuàng)業(yè)團(tuán)隊(duì),用戶飛速增長時(shí),最后都是被 MySQL 數(shù)據(jù)庫的性能瓶頸蹩了腳,最后不得不減緩產(chǎn)品功能開發(fā)的腳步,來做性能調(diào)優(yōu),失去了與競(jìng)爭(zhēng)者、模仿者、山寨大王騰訊的競(jìng)爭(zhēng)優(yōu)勢(shì)。創(chuàng)業(yè)團(tuán)隊(duì)靠什么和大公司競(jìng)爭(zhēng),靠得就是靈活與速度,跑贏大公司。

              2、在不依賴 MySQL 的條件下,那么,最低配的關(guān)系型數(shù)據(jù)庫服務(wù)(比如阿里云的最低配內(nèi)存 240M、磁盤IOPS 150、最大連接數(shù) 60,70元/月),就能適合自己的需求了,不然,勉強(qiáng)滿足一般業(yè)務(wù)配置的關(guān)系型數(shù)據(jù)庫服務(wù)的費(fèi)用,就得 700~3000 元/月了。

              3、如果購買最低配的關(guān)系型數(shù)據(jù)庫服務(wù),還不如省掉 70元/月的費(fèi)用,在自己 1GB 以上內(nèi)存的 VPS 上,自己搭建一個(gè) MySQL 數(shù)據(jù)庫,磁盤IOPS、最大連接數(shù)、存儲(chǔ)空間還不受限制。自己做好 MySQL 的主主、主從同步備份,定時(shí)dump備份就可以了。需要注意的是,很多VPS默認(rèn)沒有開啟sawp,使用 MySQL 請(qǐng)一定記得開啟。下面提供一個(gè) MySQL 5.6 版本適合在 1GB 內(nèi)存 VPS 上的 my.cnf 配置文件。
            下載文件


              4、如果說 VPS 云服務(wù)是必選項(xiàng)的話,關(guān)系型數(shù)據(jù)庫服務(wù)則是可選項(xiàng)。



              五、結(jié)構(gòu)化存儲(chǔ) NoSQL 數(shù)據(jù)庫

              1、既然不依賴 MySQL 數(shù)據(jù)庫,那么,對(duì)于高并發(fā)訪問,就需要依賴結(jié)構(gòu)化存儲(chǔ) NoSQL 數(shù)據(jù)庫了。雖然一些云計(jì)算服務(wù)商,也提供了結(jié)構(gòu)化存儲(chǔ)服務(wù),但是,不推薦使用。因?yàn)樗麄兪褂玫亩际撬接袇f(xié)議,你無法在他們的服務(wù)質(zhì)量、穩(wěn)定性變差了,價(jià)格變貴了,或出現(xiàn)別的更好服務(wù)商時(shí),快捷地遷移數(shù)據(jù)。數(shù)據(jù)遷移、代碼修改的成本太高,還要收到一些服務(wù)商規(guī)定的單個(gè)鍵值對(duì)數(shù)據(jù)大小不能超過多少、數(shù)據(jù)導(dǎo)出單個(gè)文件大小不能超過多少,使用了,就等于被綁架了。當(dāng)你準(zhǔn)備遷移時(shí),發(fā)現(xiàn)不能停服務(wù)、數(shù)據(jù)量太大導(dǎo)入導(dǎo)出速度慢、數(shù)據(jù)一致性問題受影響,你會(huì)發(fā)現(xiàn),早知如此,何必當(dāng)初。

              2、所以,對(duì)于 NoSQL 來說,本著使用軟件,而不使用服務(wù)的原則。尋找開源、免費(fèi)、付費(fèi) NoSQL 軟件,安裝在自己的 VPS 上,做到多機(jī)備份,要好得多。現(xiàn)在的 NoSQL 已經(jīng)超越了單純的 Key-Value,對(duì)于 List、結(jié)構(gòu)化存儲(chǔ)的支持,已經(jīng)可以取代 MySQL 的大部分功能。

              3、對(duì)于我們團(tuán)隊(duì)來說,NoSQL(自行開發(fā)的BigSea數(shù)據(jù)庫) 與 MySQL 在業(yè)務(wù)中的使用比例為 80% 比 20%,MySQL 主要用于給內(nèi)部編輯、銷售人員使用的后臺(tái)管理系統(tǒng)。而對(duì)于APP、網(wǎng)站流量,95% 的數(shù)據(jù)庫訪問為 NoSQL,5% 為 MySQL。

              4、如果用 MySQL 數(shù)據(jù)庫,一條聯(lián)合查詢的SQL,也許就可以處理完業(yè)務(wù)邏輯,但是,遇到大量并發(fā)請(qǐng)求,就歇菜了。如果用 NoSQL 數(shù)據(jù)庫,也許需要十次查詢,才能處理完同樣地業(yè)務(wù)邏輯,但每次查詢都比 MySQL 要快,十次循環(huán)NoSQL查詢也許比一次MySQL聯(lián)合查詢更快,應(yīng)對(duì)幾萬次/秒的查詢完全沒問題。PHP 從 5.3 版本開始,已經(jīng)可以真正地支持多線程。如果加上PHP多線程,通過十個(gè)線程同時(shí)查詢NoSQL,返回結(jié)果匯總輸出,速度就要更快了。關(guān)于 PHP 多線程的使用,我接下來會(huì)再寫篇文章細(xì)說。



              六、防DDOS、CC、Web注入攻擊

              1、世界上總會(huì)有人看你不爽,于是就想著利用不對(duì)稱的服務(wù)器、帶寬資源,DDOS、CC攻擊你。在云計(jì)算時(shí)代之前,小規(guī)模的攻擊可以依靠iptable,大規(guī)模的攻擊只能依靠昂貴的專業(yè)防火墻了。在云計(jì)算時(shí)代,可以使用一些專業(yè)的防DDOS、CC攻擊服務(wù)商,比如:與騰訊云合作的安全寶、跟百度合作的加速樂。

              2、使用這類服務(wù),有一點(diǎn)需要注意,對(duì)于域名的@記錄,CNAME別名記錄和MX郵件記錄會(huì)沖突,如果將@記錄由A記錄改為CNAME記錄,可能會(huì)導(dǎo)致該域名下綁定的企業(yè)郵箱服務(wù)器收不到郵件。



              七、云監(jiān)控

              1、對(duì)于一家沒有專門系統(tǒng)運(yùn)維人員的創(chuàng)業(yè)企業(yè)來說,可以使用第三方云監(jiān)控來代替運(yùn)維人員。使用云主機(jī),硬件故障找云計(jì)算服務(wù)商解決;操作系統(tǒng)故障,云監(jiān)控中的服務(wù)器監(jiān)控項(xiàng)目很細(xì),通過故障報(bào)警就可以定位出問題;剩下的就剩下Web程序代碼問題了,使用Nginx+PHP語言運(yùn)行服務(wù)的,將PHP慢日志打開,如果云監(jiān)控報(bào)Web服務(wù)502、504錯(cuò)誤,快速檢測(cè)一下PHP慢日志,看看那個(gè)PHP文件的哪行代碼導(dǎo)致的,作為源頭查下去(比如慢日志中顯示是MySQL Query查詢的代碼執(zhí)行慢,則進(jìn)一步追查能否正常連接MySQL服務(wù)器,沒問題則再追查MySQL自身的問題),一步步快速去解決。

              2、用過阿里云監(jiān)控、盛大云監(jiān)控、監(jiān)控寶,功能大相徑庭。誰的免費(fèi)版本功能越多、贈(zèng)送的免費(fèi)短信通知越多(對(duì)于故障的第一時(shí)間告知,相比郵件監(jiān)控通知、手機(jī)APP監(jiān)控通知,短信的延遲速度是最小的),就用誰的。

            posted on 2017-01-04 10:18 思月行云 閱讀(202) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 服務(wù)器\Ops
            一本色道久久综合亚洲精品| 亚洲欧美伊人久久综合一区二区 | 亚洲精品国产美女久久久| 天天躁日日躁狠狠久久| 国产精品久久久久一区二区三区| 久久久这里有精品| 久久99国产精品久久久| 中文字幕精品久久久久人妻| 久久精品无码午夜福利理论片| 久久久久人妻一区精品 | 九九99精品久久久久久| 18禁黄久久久AAA片| 伊人久久免费视频| 久久丫精品国产亚洲av| 亚洲欧美国产精品专区久久| 久久精品成人免费看| 久久人人爽人人爽人人片AV高清| 久久久青草青青亚洲国产免观| 中文字幕乱码久久午夜| 欧美亚洲国产精品久久久久| 国产精品久久久久一区二区三区| 91精品国产91久久久久福利| 精品综合久久久久久97| 2021国产精品久久精品| 欧美亚洲另类久久综合婷婷| 国内精品欧美久久精品| 亚洲综合婷婷久久| 亚洲国产成人久久精品影视| 久久精品国产福利国产秒| 国产产无码乱码精品久久鸭 | 久久久久久国产精品免费无码 | 91精品国产91久久久久久青草 | 97久久超碰国产精品旧版| 一本色道久久综合亚洲精品| 久久免费看黄a级毛片| 老男人久久青草av高清| 久久久一本精品99久久精品88| 久久久久久久97| 久久久久人妻一区精品性色av| 综合久久国产九一剧情麻豆| 亚洲精品乱码久久久久久|