




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、(每特教育&螞蟻課堂)上海每特教育科技余高并發(fā)與高可用實戰(zhàn)補(bǔ)充基礎(chǔ)知識DNS整個過程大體描述如下,其中前兩個步驟是在本機(jī)完成的,后 8 個步驟涉及到真正的服務(wù)器:1、瀏覽器會檢查緩存中有沒有這個對應(yīng)的過的 IP 地址,如果緩存中有,這個過程就結(jié)束。瀏覽器緩存也是有限制的,不僅瀏覽器緩存大小有限制,而且緩存的時間也有限制,通常情況下為幾分鐘到幾小時不等,被緩存的時間限制可以通過 TTL 屬性來設(shè)置。這個緩存時間太長和太短都不太好,如果時間太長,一旦被到的 IP 有變化,會導(dǎo)致被客戶端緩存的無法到變化后的 IP 地址,以致該不能正常,這段時間內(nèi)有一部分用戶無對應(yīng)的 DNS結(jié)果。其實操作系統(tǒng)
2、也有一個在 Windows 中可以通過 C:WindowsSystem32driversetchosts 文件來設(shè)置,在 Linux 中可以通過/etc/hosts 文件來設(shè)置,用戶可以將任何到一臺測試服務(wù)器上,這樣不用修改任何代碼就能測試到單獨服務(wù)器上的規(guī)程,所以有就可能通過修改用戶的被劫持。時,就要用到我們網(wǎng)絡(luò)配置中的 DNS 服務(wù)器地址 了。操作系統(tǒng)會把這個器。這個 DNS 通常都提供給用戶本地互聯(lián)網(wǎng)接入的一個 DNS服務(wù),例如用戶是在學(xué)校接入互聯(lián)網(wǎng),那么用戶的 DNS 服務(wù)器肯定在學(xué)校;如果用戶是在小區(qū)接入互聯(lián)網(wǎng),那么用戶的 DNS 就是再提供接入互聯(lián)網(wǎng)的應(yīng)用提供商,即電信或很遠(yuǎn)。Wi
3、ndows 環(huán)境下通過命令行輸入 ipconfig,Linux 環(huán)境下通過 cat /etc/resolv.conf 就可以服務(wù)器了。這個專門的服務(wù)器性能都會很好,它們一般都會緩存到這里就結(jié)束了,所以 LDNS 主要承擔(dān)了的4、如果 LDNS 仍然沒有命中,就直接到 Root Server5、根全球只有 13 臺左右6、本地服務(wù)器 LDNS 再一步返回的 gTLD 服務(wù)器請求7、接受請求的 gTLD 服務(wù)器查找并返回此對應(yīng)的 Name Server服務(wù)器的地址,這個 Name Server 通常就是用戶的服務(wù)器,例如用戶在某個服務(wù)提供商申請的,那么這個任務(wù)就由這個提供商的服務(wù)器來完成8、Nam
4、e Server服務(wù)器會的和 IP 的關(guān)系表,在正常情況下都根據(jù)得到目標(biāo) IP 地址,連同一個 TTL 值返回給 DNS Server服務(wù)器服務(wù)器返回給本地服務(wù)器一個所的主服務(wù)器(gTLD Server)地址。gTLD 是國際頂級服務(wù)器,如.com、.cn、.org 等,服務(wù)器請求工作。結(jié)果,當(dāng)然緩存時間是受到的失效時間的。大約 80%的配置的 DNS戶所在城市的某個角落,也就是通常說的 SPA,那么這個 DNS 通常也會在用給這個 LDNS,也就是本地區(qū)的服務(wù)3、前兩個過程無法址上,導(dǎo)致這些來把特定的到他指定的 IP 地的代碼的業(yè)務(wù)邏輯是否正確。正是因為有這種本地 DNS到任何能夠的 IP
5、地址。例如,我們在測試時可以將一個的過程,2、如果用戶瀏覽器緩存中沒有數(shù)據(jù),瀏覽器會查找操作系統(tǒng)緩存中是否有這個法。如果設(shè)置時間太短,會導(dǎo)致用戶每次都要重新一次。(每特教育&螞蟻課堂)上海每特教育科技余9、返回該對應(yīng)的 IP 和 TTL 值,LDNS 會緩存這個和 IP 的對應(yīng)關(guān)系,緩存時間由 TTL 值10、把的結(jié)果返回給用戶,用戶根據(jù) TTL 值緩存在本地系統(tǒng)緩存中,過程結(jié)束在實際的 DNS過程中,可能還不止這 10 步,如 Name Server 可能有很多級,或者有一個 GTM 來負(fù)載均衡,這都有可能會影響過程。高并發(fā)與高可用大型系統(tǒng)應(yīng)有的特點高并發(fā),大流量高并發(fā),大流量:需要
6、面對高并發(fā)用戶,大流量。舉個例子,去往迪拜的飛機(jī)有 200,但是有 100w 人都擠買票,如何讓這 100w 人能夠看到票務(wù)的實時更新,以及順利的買到一,都是一個架構(gòu)師應(yīng)該考慮的問題。這也許對于淘寶的“雙十一”1000w 的一分鐘用戶量來說,是個微不足道的數(shù)字,但是對于用戶的體驗以及的口碑來說,都是一項不小的。高可用高可用:相對于高并發(fā)來說,高可用并不是一個比較有規(guī)律的參數(shù),7*24 是每個的夢想,但是你并不知道,在某一刻,他就沒理由的宕機(jī)了。海量數(shù)據(jù)海量數(shù)據(jù):,管理海量的數(shù)據(jù),需要使用大量的服務(wù)器。每周上傳的接近 10 億,沒有一個大型的服務(wù)器的支撐,相信用戶量一直飆升。用戶分布廣泛,網(wǎng)絡(luò)情
7、況復(fù)雜用戶分布廣泛,網(wǎng)絡(luò)情況復(fù)雜:許多大型的互聯(lián)網(wǎng)都是為全球用戶提供服務(wù)的,用戶分布范圍廣,各地網(wǎng)絡(luò)情況千差萬別。各個運行商之間的互通,各個的數(shù)據(jù)連接等等。安全環(huán)境惡劣安全環(huán)境惡劣:由于互聯(lián)網(wǎng)的開放性,使得互聯(lián)網(wǎng)更容易受到,包括各種省份證信息被竊取等屢見不鮮。(每特教育&螞蟻課堂)上海每特教育科技余漸進(jìn)式發(fā)展?jié)u進(jìn)式發(fā)展:幾乎所有的大型互聯(lián)網(wǎng)都是從一個小開始,漸進(jìn)發(fā)展起來的,好的互聯(lián)網(wǎng)都是慢慢運營出來的。架構(gòu)演變過程傳統(tǒng)架構(gòu)傳統(tǒng)項目分為三層架構(gòu),將業(yè)務(wù)邏輯層、數(shù)據(jù)庫層、層放入在一個項目中 使用 SSH 或者 SSM 技術(shù)。優(yōu)點:適合于個人或者小團(tuán)隊開發(fā),不適合大團(tuán)隊開發(fā)。分布式架構(gòu)根據(jù)業(yè)
8、務(wù)需求進(jìn)行拆分成 N 個子系統(tǒng),多個子系統(tǒng)相互協(xié)作才能完成業(yè)務(wù)流程子系統(tǒng)之間通訊使用 RPC通訊技術(shù)。優(yōu)點:1.把模塊拆分,使用接口通信,降低模塊之間的耦合度。2.把項目拆分成若干個子項目,不同的團(tuán)隊負(fù)責(zé)不同的子項目。3.增加功能時只需要再增加一個子項目,調(diào)用其它系統(tǒng)的接口就可以。4.可以靈活的進(jìn)行分布式部署。有優(yōu)點就有缺點,缺點如下:1.系統(tǒng)之間交互需要使用通口開發(fā)增作量。2.各個模塊有一些通用的業(yè)務(wù)邏輯無法共用。為了解決上面分布式架構(gòu)的缺點,我們引入了 soa 架構(gòu),SOA:Service Oriented Architecture 面向服務(wù)的架構(gòu)。也就是把工程拆分成服務(wù)層、表現(xiàn)層兩個工程
9、。服務(wù)層中包含業(yè)務(wù)邏輯,只需要對外提供服務(wù)即可。表現(xiàn)層只需要處理和頁面的交互,業(yè)務(wù)邏輯都是調(diào)用服務(wù)層的服務(wù)來實現(xiàn)。SOA 架構(gòu)SOA 是一種軟件架構(gòu)模式,將共同的業(yè)務(wù)邏輯抽取出來,封裝成單獨的服務(wù)業(yè)務(wù)系統(tǒng)分解為多個組件,讓每個組件都提供離散,自治,可復(fù)用的服務(wù)能力通過服務(wù)的組合和編排來實現(xiàn)上層的業(yè)務(wù)流程作用:簡化維護(hù),降低整體風(fēng)險,伸縮靈活微服務(wù)架構(gòu)微服務(wù)是指開發(fā)一個單個、小型的但有業(yè)務(wù)的服務(wù),每個服務(wù)都有的處理和輕通訊機(jī)制,可以部署在單個服務(wù)器上,讓專業(yè)的人做專業(yè)的事情。微服務(wù)與 SOA 相比,更加輕量級。(每特教育&螞蟻課堂)上海每特教育科技余SOA 與微服務(wù)架構(gòu)區(qū)別OA 架構(gòu)主要
10、企業(yè)級、采用 ESB 服務(wù)(ESB 企業(yè)服務(wù)總線),非常重,需要序列化和反序列化,采用 XML 格式傳輸。微服務(wù)架構(gòu)主要互聯(lián)網(wǎng)公司,輕量級、小巧,運行,基于 Http+Rest+JSON 格式傳輸。ESB 也可以說是傳統(tǒng)中間件技術(shù)與 XML、Web 服務(wù)等技術(shù)相互結(jié)合的產(chǎn)物。1.在微服務(wù)中,與 SOA 不同,服務(wù)可以于其他服務(wù)進(jìn)行操作和部署,因此更容易經(jīng)常部署新版本的服務(wù)和擴(kuò)張服務(wù),讓專業(yè)的人做專業(yè)的事情,快速迭代新的。2.在 SOA 中服務(wù)可能共享數(shù)據(jù),而微服務(wù)中每個服務(wù)都具有的數(shù)據(jù)。3.SOA 與微服務(wù)主要區(qū)別在于規(guī)模和范圍,SOA 是一種思想,是面向服務(wù)架構(gòu)體系,微服務(wù)繼承 了 SOA
11、的優(yōu)點,去除傳統(tǒng)的 ESB 消息總線,采用Http+json 格式通訊方式,更加輕量級。高并發(fā)設(shè)計原則系統(tǒng)設(shè)計不僅需要考慮實現(xiàn)業(yè)務(wù)功能,還要保證系統(tǒng)高并發(fā)、高可用、高可靠等。同時還應(yīng)考慮系統(tǒng)容量(流量、容量等)、SLA 指定(吞吐量、響應(yīng)時間、可用性、降級方案等)、(負(fù)載、響應(yīng)時間、可用率等)、應(yīng)急預(yù)案(容災(zāi)、降級、限流、切流量、可等)。緩存異步并發(fā)連接池線程池擴(kuò)容消息隊列分布式任務(wù)拆分系統(tǒng)在我們從零開始做一個新系統(tǒng)的時候,會首先進(jìn)行系統(tǒng)功能模塊架構(gòu)設(shè)計,那么是直接做一個大而全的垂直的 MVC 系統(tǒng),使用一個 war 包進(jìn)行發(fā)布管理,還是需要按一些規(guī)則進(jìn)行模塊拆分,設(shè)計成 SOA 或者微服務(wù)系
12、統(tǒng)比較好呢?這個筆者認(rèn)為需要依據(jù)項目具有什么樣的人力物力條件以及項目需要支撐多少用戶量和量為基礎(chǔ)。一個好的系統(tǒng)設(shè)計應(yīng)該能夠滿足解決當(dāng)前的需求和問題,把控實現(xiàn)和進(jìn)度風(fēng)險,和未來,避免過度設(shè)計,在上線一個基礎(chǔ)版本之后,再進(jìn)行不斷迭代和完善。今天我們來進(jìn)行 SOA、微服務(wù)系統(tǒng)架構(gòu)設(shè)計時模塊拆分的一些維度和原則。系統(tǒng)維度:按照系統(tǒng)功能、業(yè)務(wù)拆分,如、券、購物車,結(jié)算,訂單等系統(tǒng)。功能維度:對系統(tǒng)功能在做細(xì)粒度拆分,券系統(tǒng)分為券系統(tǒng)、領(lǐng)券系統(tǒng)、發(fā)券系統(tǒng)。讀寫維度:比如商品系統(tǒng)中,如果量比較大,可以單獨分為兩個服務(wù),分別為服務(wù)和寫服務(wù),讀寫比例特征拆分;讀多,可考慮多級緩存;寫多,可考慮分庫分表.AOP
13、維度: 根據(jù)特征,按照 AOP 進(jìn)行拆分,比如商品詳情頁可分為 CDN、頁面渲,CDN 就是一個 AOP 系統(tǒng)模塊維度:對整體代碼結(jié)構(gòu)劃分 Web、Service、DAO(每特教育&螞蟻課堂)上海每特教育科技余服務(wù)化在分布式系統(tǒng)中,將業(yè)務(wù)邏輯層封裝成接口形式,給其他系統(tǒng)調(diào)用,那么這個接口我們可以理解為叫做服務(wù)。當(dāng)服務(wù)越來越多的時候,就會需要用到服務(wù)治理,那么會用到 Dubbo、SpringCloud 服務(wù)治理框架后續(xù)在深入 Dubbo 和 SpringCloud 中會詳細(xì)講到。服務(wù)化演進(jìn): 進(jìn)程內(nèi)服務(wù)-單機(jī)服務(wù)-集群手動服務(wù)-自動和發(fā)現(xiàn)服務(wù)-服務(wù)的分組、路由-服務(wù)治理考慮服務(wù)分組、限流
14、、黑白、超時、重試機(jī)制、路由、故障補(bǔ)償?shù)葘嵺`:利用 Nginx、HaProxy、LVS 等實現(xiàn)負(fù)載均衡,ZooKeeper、Consul 等實現(xiàn)自動和發(fā)現(xiàn)服務(wù)消息隊列消息中間件是一個客戶端與服務(wù)器異步通訊框架,消息中間件中分為點對點與發(fā)布訂閱通訊方式,生產(chǎn)者消息后,消費者可以無需等待, 異步接受生產(chǎn)者消息。在系統(tǒng)中,會使用消息隊列異步推送消息,注意消息失敗重試冪等性問題。冪等性問題解決方案,使用持久化日志+全局 id。緩存技術(shù)瀏覽器端緩存APP 客戶端緩存CDN(Content Delivery Network)緩存接入層緩存應(yīng)用層緩存分布式緩存對于兜底數(shù)據(jù)或者異常數(shù)據(jù),不應(yīng)該讓其緩存,否則用
15、戶會在很長一段時間里看到這些數(shù)據(jù)。并發(fā)化改串行為并行。高可用設(shè)計原則通過負(fù)載均衡和反向?qū)崿F(xiàn)分流。通過限流保護(hù)服務(wù)免受雪崩之災(zāi)。通過降級實現(xiàn)部分可用、有損服務(wù)。通過實現(xiàn)故障。通過合理設(shè)置的超時與重試機(jī)制避免請求堆積造成雪崩。通過機(jī)制快速修復(fù)錯誤版本。(每特教育&螞蟻課堂)上海每特教育科技余降級對于高可用服務(wù),很重要的一個設(shè)計就是降級開關(guān),在設(shè)計降級開關(guān)時,主要依據(jù)如下思路:1.開關(guān)集中化管理:通過推送機(jī)制把開關(guān)推送到各個應(yīng)用。2.可降級的多級讀服務(wù):比如服務(wù)調(diào)用降級為只讀本地緩存、只讀分布式緩存、只讀默認(rèn)降級數(shù)據(jù)(如庫存狀態(tài)默認(rèn)有貨)。3.開關(guān)前置化:如架構(gòu)是 Nginx>tomc
16、at,可以將開關(guān)前置到 Nginx 接入層,在 Nginx 層做開關(guān),請求流量回源后端應(yīng)用或者只是一小部分流量回源。4.業(yè)務(wù)降級:當(dāng)高并發(fā)流量來襲,在系統(tǒng)大促設(shè)計時保障用戶能下單、能支付是要求,并保障數(shù)據(jù)最終一致性即可。這樣就可以把一些同步調(diào)用改成異步調(diào)用,優(yōu)先處理高優(yōu)先級數(shù)據(jù)或特殊特征的數(shù)據(jù),合理分配進(jìn)入系統(tǒng)的流量,以保障系統(tǒng)可用。限流目的: 防止請求或超峰值實踐:請求流量只到 Cache穿透后端應(yīng)用的流量使用 Nginx 的 limit 處理IP 使用 Nginx Deny 策略或者 iptables 拒絕切流量目的:故障實踐:DNS: 更改,如 DNSPOD 可以添加備用 IP,正常 I
17、P 故障時,會切換到備用地址; 生效實踐較慢HttpDNS: 為了繞過運營商 LocalDNS 實現(xiàn)的精準(zhǔn)流量調(diào)度LVS/HaProxy/Nginx: 摘除故障節(jié)點可發(fā)布版本失敗時可隨時快速回退到上一個穩(wěn)定版本業(yè)務(wù)設(shè)計原則防重設(shè)計頁面請求防止重復(fù)提交,可以采用防重 key、放重表、Token 等采用圖形驗證,防止。(每特教育&螞蟻課堂)上海每特教育科技余冪等設(shè)計消息中間件:消息中間件中應(yīng)該注意因網(wǎng)絡(luò)延遲的,導(dǎo)致消息重復(fù)消費第支付接口:在回調(diào)接口中,應(yīng)該注意網(wǎng)絡(luò)延遲,沒有及時返回給第支付平臺,注意回調(diào)冪等性問題。分布式系統(tǒng)中,保證生成的訂單號唯一性,定時 Job 執(zhí)行的冪等性問題等。流程
18、定義復(fù)用流程系統(tǒng),提供個性化的流程服務(wù)。狀態(tài)與狀態(tài)機(jī)復(fù)用流程系統(tǒng),提供個性化的流程服務(wù)。系統(tǒng)操作可反饋設(shè)計系統(tǒng)時,考慮效果的可預(yù)覽、可反饋。系統(tǒng)審批化對于有些重要的功能需要設(shè)計審批流,比如調(diào)整價格,并對操作進(jìn)行日志,從而保證操作可追溯、可審計。文檔注釋系統(tǒng)發(fā)展的最初階段就應(yīng)該有文檔庫(設(shè)計架構(gòu)、設(shè)計思想、數(shù)據(jù)字典/業(yè)務(wù)流程、現(xiàn)有問題),業(yè)務(wù)代碼合特殊需求都要有注釋。備份包括代碼和的備份。代碼主要提交到代碼倉庫進(jìn)行管理和備份,代碼倉庫至少應(yīng)該具備多版本的功能。備份指的是一個系統(tǒng)至少應(yīng)該有兩名開發(fā)是了解的。環(huán)境準(zhǔn)備CentOS7 7.0 64 位 以上+一臺服務(wù)器+一個+CDN 內(nèi)容分發(fā)電腦配置
19、16g 以上內(nèi)存(每特教育&螞蟻課堂)上海每特教育科技余CentOS7 關(guān)閉nginx 進(jìn)程ps aux | grep 'nginx'殺死進(jìn)程方式關(guān)閉nginxkill -9 2363停止nginx 服務(wù)器/usr/local/nginx/sbin/nginx -s stop重啟nginx/usr/local/nginx/sbin/nginx -s reload啟動nginx負(fù)載均衡與反向工具在做開發(fā)或者是對接第支付接口時,回調(diào)接口可能需要。這時候開發(fā)者在本地測試的時候,需要用到測試工具。常用的測試工具有natapp、ngrokNatApp 簡介服務(wù)器更新:全面支持HT
20、TPS 協(xié)議以及本地SSL,支持WSS 協(xié)議.同時支持HTTP/2 WEB 協(xié)議,支持小程序本地開發(fā)/臨時關(guān)閉systemctl stop firewalld/開機(jī)啟動systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.(每特教育&螞蟻課堂)上海每特教育科技余全面自動支持泛子
21、與訪客真實IP 地址Windows 用法 natapp -authtoken=9ab6b9040a624f40相關(guān)文檔負(fù)載均衡負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。負(fù)載均衡,英文名稱為Load Balance,其意思就是分?jǐn)偟蕉鄠€操作單元上進(jìn)行執(zhí)行,例如 Web 服務(wù)器、FTP 服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。NginxNginx 是一款輕量級的Web 服務(wù)器/反向服務(wù)器及電子郵件(IMAP/POP3)服務(wù)器,并在一個 BSD-like 協(xié)議
22、下。由俄羅斯的程序設(shè)計師Igor Sysoev 所開發(fā),供大型的及搜索引擎 Rambler(俄文:)使用。其特點是占有內(nèi)存少,并發(fā)能力強(qiáng),事實上 nginx 的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好.陸使用 nginx用戶有:新浪、網(wǎng)易、 騰訊等。Nginx 是一個高性能的 Web 和反向服務(wù)器, 它具有有很多非常優(yōu)越的特性:作為 Web 服務(wù)器:相比 Apache,Nginx 使用更少的,支持的并發(fā)連接,體現(xiàn)更高的效率,這點使 Nginx 尤其受到虛擬主機(jī)提供商的歡迎。能夠支持高達(dá) 50,000 個并發(fā)連接數(shù)的響應(yīng),感謝 Nginx 為我們選擇了 epoll and kqueue 作為開
23、發(fā)模型.作為負(fù)載均衡服務(wù)器:Nginx 既可以在內(nèi)部直接支持 Rails 和 PHP,也可以支持作為 HTTP服務(wù)器 對行服務(wù)。Nginx 用C 編寫, 不論是系統(tǒng)開銷還是 CPU 使用效率都比 Perlbal 要好的多。作為郵件服務(wù)器: Nginx 同時也是一個非常優(yōu)秀的郵件服務(wù)器(最早開發(fā)這個的目的之一也是作為郵件服務(wù)器),Last.fm 描述了并且美妙的使用經(jīng)驗。Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持 perl 語法),Bugs 非常少的服務(wù)器: Nginx 啟動特別容易,并且?guī)缀蹩梢宰龅?7*24 不間斷運行,即使運行數(shù)也不需要重新啟動。你還能夠在 不間斷服務(wù)的情況
24、下進(jìn)行軟件版本的升級。Nginx 一般用戶七層負(fù)載均衡,其吞吐量有一定的限制。為了提高整體的吞吐量,會在 DNS 和Nginx 之間引入LVS(軟件負(fù)載均衡器)、F5(硬負(fù)載均衡器) 可以做四層負(fù)載均衡,首先 DNS到LVS(F5),讓后 LVS(F5)轉(zhuǎn)發(fā)給 Nginx,在有Nginx 轉(zhuǎn)發(fā)給真實的服務(wù)器(每特教育&螞蟻課堂)上海每特教育科技余Nginx 基本安裝Windows 安裝 Nginx解壓:nginx-windows雙擊: nginx.exe能看到nginx 歡迎界面說明,nginx 安裝演示下 nginx 做靜態(tài)服務(wù)器啟動NginxC:servernginx-1.0.2&
25、gt;start nginx或C:servernginx-1.0.2>nginx.exe注:建議使用第一種,第二種會使你的cmd 窗口一直處于執(zhí)行中,不能進(jìn)行其令操作。停止NginxLinux 安裝 Nginx1.安裝gcc gcc-c+(如新環(huán)境,未安裝請先安裝)2.安裝wget3.安裝PCRE 庫(每特教育&螞蟻課堂)上海每特教育科技余5.安裝SSL 庫6.安裝zlib 庫存5.安裝nginx6.啟動nginxps -aux | grep 'nginx'Nginx 應(yīng)用場景1、http 服務(wù)器。Nginx 是一個http 服務(wù)可以提供 http 服務(wù)??梢宰鼍W(wǎng)
26、頁靜態(tài)服務(wù)器。2、虛擬主機(jī)。可以實現(xiàn)在一臺服務(wù)器虛擬出多個,例如個人使用的虛擬機(jī)。3、反向,負(fù)載均衡。當(dāng)?shù)牧窟_(dá)到一定程度后,單臺服務(wù)器不能滿足用戶的請求時,需要用多臺服務(wù)器集群(每特教育&螞蟻課堂)上海每特教育科技余可以使用nginx 做反向。并且多臺服務(wù)器可以平均分擔(dān)負(fù)載,應(yīng)為某臺服務(wù)器負(fù)載高宕機(jī)而某臺服務(wù)器閑置的情況。4、nginz 中也可以配置安全管理、比如可以使用 Nginx 搭建API 接口網(wǎng)關(guān),對每個接口服務(wù)進(jìn)行。Nginx 目錄結(jié)構(gòu)Nginx-|_conf配置目錄|_contrib|_docs 文檔目錄|_logs 日志目錄|_temp 臨時文件目錄|_html 靜態(tài)頁面
27、目錄|_nginx.exe 主程序Nginx 靜態(tài)靜態(tài)存放在nginx 的html 頁面Nginx 虛擬主機(jī)配置1、基于的虛擬主機(jī),通過來區(qū)分虛擬主機(jī)應(yīng)用:外部2、基于端口的虛擬主機(jī),通過端口來區(qū)分虛擬主機(jī)應(yīng)用:公司內(nèi)部,外部的管理3、基于ip 的虛擬主機(jī),幾乎不用?;谔摂M主機(jī)配置實現(xiàn)步驟:需要建立/data/www /data/bbs 目錄,windows 本地 hosts 添加虛擬機(jī) ip 地址對應(yīng)的;對應(yīng)目錄下新增index.html 文件;(每特教育&螞蟻課堂)上海每特教育科技余基于端口的虛擬主機(jī)使用端口來區(qū)分,瀏覽器使用或ip 地址:端Nginx 配置反向反向的作用反向(R
28、everse Proxy)方式是指以服務(wù)器來接受 internet 上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,(每特教育&螞蟻課堂)上海每特教育科技余并將從服務(wù)器上得到的結(jié)果返回給internet 上請求連接的客戶端,此理服務(wù)器對外就表現(xiàn)為一個反向服務(wù)器。啟動一個Tomcat :8080使用nginx 反向 直接跳轉(zhuǎn)到 :8080反向的好處反向的好處隱藏真實內(nèi)部 ip 地址,請求先nginx服務(wù)器(可以到),在使用 nginx 服務(wù)器轉(zhuǎn)發(fā)到真實服務(wù)器中。反向的配置(每特教育&螞蟻課堂)上海每特教育科技余Location 正則表達(dá)式lo
29、cation 的作用location 指令的作用是根據(jù)用戶請求的URI 來執(zhí)行不同的應(yīng)用,也就是根據(jù)用戶請求的URL 進(jìn)行匹配,匹配即進(jìn)行相關(guān)的操作。location 的語法已=開頭表示精確匹配如 A 中只匹配根目錄結(jié)尾的請求,后面不能帶任何字符串。 開頭表示uri 以某個常規(guī)字符串開頭,不是正則匹配 開頭表示區(qū)分大小寫的正則匹配;* 開頭表示不區(qū)分大小寫的正則匹配/ 通用匹配, 如果沒有其它匹配,任何請求都會匹配到Location 正則案例#精確匹配,/后面不能帶任何字符#匹配所有以/開頭請求(每特教育&螞蟻課堂)上海每特教育科技余# 以開頭/itmayiedu_8080默認(rèn)開啟不區(qū)
30、分大小寫# 開頭區(qū)分大小寫負(fù)載均衡的作用負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。負(fù)載均衡,英文名稱為 Load Balance,其意思就是分?jǐn)偟蕉鄠€操作單元上進(jìn)行執(zhí)行, 例如 Web 服務(wù)器、FTP 服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。負(fù)載均衡就是,將所有請求先到負(fù)載均衡器,在由負(fù)載均衡器采用負(fù)載均衡算訓(xùn)、IP綁定、權(quán)重)分發(fā)到不同實際的服務(wù)器中,這也就是服務(wù)器集群,集群的目的 是為了減輕單臺服務(wù)器(每特教育&螞蟻課堂)上海每特教育科技余負(fù)
31、載均衡的缺點使用負(fù)載均衡后,實際用到的服務(wù)器會被集群多臺,那么這時候就會產(chǎn)生很多分布式相關(guān)問題。比如:分布式 Session 一致性問題分布式定時任務(wù)調(diào)度冪等性問題分布式生成全局訂單 ID網(wǎng)絡(luò)模型圖四層和七層負(fù)載均衡的區(qū)別四層負(fù)載均衡,在網(wǎng)絡(luò)模型中的傳輸層中,基于主要是基于tcp 協(xié)議報文實現(xiàn)負(fù)載均衡(比如 LVS、haproxy 就是四層負(fù)載均衡器),使用改寫報文的源地址和目的地址。七層負(fù)載均衡,在網(wǎng)絡(luò)模型中應(yīng)用層中,基于 URL 或者 HTTP 協(xié)議實現(xiàn)負(fù)載均衡,Web 服務(wù)器。Upstream Server 負(fù)載均衡Upstream Server 中文翻譯 上游服務(wù)器,意思就是負(fù)載均衡服
32、務(wù)器設(shè)置,白話文表示(就是被 nginx最的服務(wù)器)負(fù)載均衡算法:配置多個上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器)的負(fù)載均衡機(jī)制失敗重試機(jī)制:當(dāng)上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器)出現(xiàn)超時或者服務(wù)器不存活,是否考慮重試機(jī)制(補(bǔ)償機(jī)制)服務(wù)器心跳檢測: 當(dāng)上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器),檢測|心跳檢測(每特教育&螞蟻課堂)上海每特教育科技余Nginx 配置負(fù)載均衡Nginx 負(fù)載均衡提供上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器),負(fù)載均衡、故障轉(zhuǎn)移、失敗重試、容錯、健康檢查等。當(dāng)上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器)發(fā)生故障時,可以轉(zhuǎn)移到其他上游服務(wù)器(真實業(yè)務(wù)邏輯的服務(wù)器)。Upstream Serv
33、er 配置upstream 主要配置如下:IP 地址和端:配置上游服務(wù)器的IP 地址和端口負(fù)載均衡算法1、輪詢(默認(rèn))每個請求按時間順序逐一分配到不同的后端服務(wù),如果后端某臺服務(wù)器死機(jī),自動剔除故障系統(tǒng),使用戶不受影響。2、weight(輪詢)weight 的值越大分配到的概率越高,主要用于后端每臺服務(wù)器性能不均衡的情況下?;蛘邇H僅為在主從的情況下設(shè)置不同的,達(dá)到合理有效的地利用主機(jī)。3、ip_hash每個請求按IP 的結(jié)果分配,使來自同一個 IP 的訪客固定一臺后端服務(wù)器,并且可以有效解決頁存在的session 共享問題。俗稱IP 綁定。4、fair(第)比 weight、ip_hash 更
34、加智能的負(fù)載均衡算法,fair 算法可以根據(jù)頁面大小和加載時間長短智能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時間 來分配請求,響應(yīng)時間短的優(yōu)先分配。Nginx 本身不支持fair,如果需要這種調(diào)度算法,則必須安裝upstream_fair 模塊。(每特教育&螞蟻課堂)上海每特教育科技余5、url_hash(第)按的URL 的結(jié)果來分配請求,使每個 URL 定向到一臺后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率。Nginx本身不支持url_hash,如果需要這種調(diào)度算法,則必須安裝 Nginx 的hash 軟件包。輪詢(默認(rèn))每個請求按時間順序逐一分配到不同的后端服務(wù),如果后端某臺
35、服務(wù)器死機(jī),自動剔除故障系統(tǒng),使用戶不受影響。權(quán)重 WeightIP 綁定 ip_hash每個請求按IP 的結(jié)果分配,使來自同一個 IP 的訪客固定一臺后端服務(wù)器,并且可以有效解決頁存在的session 共享問題。俗稱IP 綁定。(每特教育&螞蟻課堂)上海每特教育科技余Nginx 配置故障轉(zhuǎn)移當(dāng)上游服務(wù)器(真實服務(wù)器),一旦出現(xiàn)故障或者是沒有及時相應(yīng)的話,應(yīng)該直接輪訓(xùn)到下一臺服務(wù)器,保證服務(wù)器的高可用。Nginx 配置代碼nginx rewriteNginx 提供的全局變量或設(shè)置的變量,結(jié)合正則表達(dá)式和標(biāo)志位實現(xiàn) url 重寫以及重定向。rewrite 只能放在server,locat
36、ion,if中,并且只能對后邊的除去傳遞的參數(shù)外的字符串起作用。Rewrite 主要的功能就是實現(xiàn) URL 的重寫,Nginx 的 Rewrite 規(guī)則采用 Pcre,perl 兼容正則表達(dá)式的語則匹配,如果需要Nginx 的Rewrite 功能,在編譯Nginx 之前,需要編譯安裝 PCRE 庫。通過Rewrite 規(guī)則,可以實現(xiàn)規(guī)范的URL、根據(jù)變量來做 URL 轉(zhuǎn)向及選擇配置。server listen80;server_name;location / # 指定上游服務(wù)器負(fù)載均衡服務(wù)器proxy_pass;#nginx 與上游服務(wù)器(真實的服務(wù)器)超時時間 后端服務(wù)器連接的超時時間_發(fā)起
37、握手等候響應(yīng)超時時間proxy_connect_timeout 1s;#nginx給上游服務(wù)器(真實的服務(wù)器)超時時間proxy_send_timeout 1s;# nginx 接受上游服務(wù)器(真實的服務(wù)器)超時時間proxy_read_timeout 1s;index index.html index.htm;server_name;location / # 指定上游服務(wù)器負(fù)載均衡服務(wù)器proxy_pass;index index.html index.htm;(每特教育&螞蟻課堂)上海每特教育科技余Rewrite 全局變量nginx 的rewrite 規(guī)則就是使用正則匹配請求的 u
38、rl,然后根據(jù)定義的規(guī)則進(jìn)行重寫和改變,需 ngx_http_rewrite_module 模塊來支持url 重寫功能,該模塊是標(biāo)準(zhǔn)模塊,默認(rèn)已經(jīng)安裝。IP 地址來源# 如果的ip 地址為 65,則返回 403 if ($remote_addr = 66) return 403;變量含義$args這個變量等于請求行中的參數(shù),同$query_string$content length請求頭中的 Content-length 字段。$content_type請求頭中的 Content-Type 字段。$document_root當(dāng)前請求在 root 指令
39、中指定的值。$host請求主機(jī)頭字段,否則為服務(wù)器名稱。$http_user_agent客戶端 agent 信息$http_cookie客戶端 cookie 信息$limit_rate這個變量可以限制連接速率。$request_method客戶端請求的動作,通常為 GET 或 POST。$remote_addr客戶端的 IP 地址。$remote_port客戶端的端口。$remote_user已經(jīng)經(jīng)過 Auth Basic Module 驗證的用戶名。$request_filename當(dāng)前請求的文件路徑,由 root 或 alias 指令與 URI 請求生成。$schemeHTTP 方法(如
40、http,https)。$server_protocol請求使用的協(xié)議,通常是 HTTP/1.0 或 HTTP/1.1。$server_addr服務(wù)器地址,在完成一次系統(tǒng)調(diào)用后可以確定這個值。$server_name服務(wù)器名稱。$server_port請求到達(dá)服務(wù)器的端。$request_uri包含請求參數(shù)的原始 URI,不包含主機(jī)名,如”/foo/bar.php?arg=baz”。$uri不帶請求參數(shù)的當(dāng)前 URI,$uri 不包含主機(jī)名,如”/foo/bar.html”。$document_uri與$uri 相同。(每特教育&螞蟻課堂)上海每特教育科技余限制瀏覽器Linux 環(huán)境下
41、 使用 NginxLinux 環(huán)境下修改 host 文件host 文件位置:/etc/hostsvi /etc/hosts 即可編輯修改方式類似windows.Linux 環(huán)境下配置負(fù)載均衡Windows 環(huán)境配置 DNS到 Linuxhost 文件新增: 28#定義上游服務(wù)器(需要被nginx 真實的服務(wù)器) 默認(rèn)是輪訓(xùn)機(jī)制upstream backServerserver :8080;server :8081;server listen80;server_name;location / # 指定上游服務(wù)器負(fù)載均衡
42、服務(wù)器proxy_pass;index index.html index.htm;# 不谷歌瀏覽器如果是谷歌瀏覽器返回 500 if ($http_user_agent Chrome) return 500;(每特教育&螞蟻課堂)上海每特教育科技余環(huán)境配置 Nginx信息準(zhǔn)備環(huán)境備課環(huán)境客戶端輸入 testbbs. 使用 Nginx 轉(zhuǎn)發(fā)到 客戶端輸入 testwww. 使用 Nginx 轉(zhuǎn)發(fā)到 上課環(huán)境案例需求: 對應(yīng)生產(chǎn)環(huán)境 Linux 服務(wù)器 06客戶端輸入 使用 Nginx 轉(zhuǎn)發(fā)到 客戶端輸入 testwww. 使用 Nginx 轉(zhuǎn)發(fā)到 服務(wù)器上安裝 Ng
43、inx 配置# 配置 beike反向跳轉(zhuǎn)到. server listen80;server_name beike;location / proxy_pass;index index.html index.htm;# 配置 反向跳轉(zhuǎn)到(每特教育&螞蟻課堂)上海每特教育科技余配置DNSHttp 動態(tài)負(fù)載均衡什么是動態(tài)負(fù)載均衡傳統(tǒng)的負(fù)載均衡,如果 Upstream 參數(shù)發(fā)生變化,每次都需要重新加載 nginx.conf 文件,因此擴(kuò)展性不是很高,所以我們可以采用動態(tài)負(fù)載均衡,實現(xiàn) Upstream 可配置化、動態(tài)化, 無需人工重新加載 nginx.conf。這類似分布式的配置中心動態(tài)負(fù)載均衡
44、實現(xiàn)方案1.Consul+Consul-template(每特教育&螞蟻課堂)上海每特教育科技余每次發(fā)現(xiàn)配置更改需要raload nginx,重啟 Nginx。2. Consul+OpenResty 實現(xiàn)無需raload 動態(tài)負(fù)載均衡3. Consul+upsync+Nginx 實現(xiàn)無需raload 動態(tài)負(fù)載均衡常用服務(wù)器與發(fā)現(xiàn)框架常見服務(wù)發(fā)現(xiàn)框架 Consul、Eureka、 ZooKeeper 以及 Etcd ZooKeeper 是這種類型的項目中歷史最悠久的之一,它于 Hadoop。它非常成熟、可靠,被許多大公司(、eBay、雅虎等)使用。etcd 是一個采用 HTTP 協(xié)議的健
45、/值對系統(tǒng),它是一個分布式和功能層次配置系統(tǒng),可用于構(gòu)建服務(wù)發(fā)現(xiàn)系統(tǒng)。其很容易部署、安裝和使用,提供了可靠的數(shù)據(jù)持久化特性。它是安全的并且文檔也十分齊全。Consul 快速入門Consul 是一款開源的分布式服務(wù)非常簡單,它支持如下特性。與發(fā)現(xiàn)系統(tǒng),通過 HTTP API 可以使得服務(wù)、發(fā)現(xiàn)實現(xiàn)起來服務(wù):服務(wù)實現(xiàn)者可以通過HTTP API 或 DNS 方式,將服務(wù)到 Consul。服務(wù)發(fā)現(xiàn):服務(wù)消費者可以通過HTTP API 或 DNS 方式,從 Consul 獲取服務(wù)的 IP 和PORT。故障檢測:支持如TCP、HTTP 等方式的健康檢查機(jī)制,從而當(dāng)服務(wù)有故障時自動摘除。K/V:使用K/V實
46、現(xiàn)動態(tài)配置中心,其使用 HTTP 長輪詢實現(xiàn)變更觸發(fā)和配置更改。多數(shù)據(jù)中心:支持多數(shù)據(jù)中心,可以按照數(shù)據(jù)中心用多數(shù)據(jù)中心集群還可以避免單數(shù)據(jù)中心的單點故障。Raft 算法:Consul 使用Raft 算法實現(xiàn)集群數(shù)據(jù)一致性。和發(fā)現(xiàn)服務(wù),即支持只消費本地機(jī)房服務(wù),使通過 Consul 可以管理服務(wù)與發(fā)現(xiàn),接下來需要有一個與 Nginx 部署在同一臺的 Agent 來實現(xiàn)Nginx 配置更改和Nginx 重能。我們有 Confd 或者 Consul-template 兩個選擇,而 Consul-template 是 Consul提供的,我們就選擇它了。其使用 HTTP 長輪詢實現(xiàn)變更觸發(fā)和配置更改
47、(使用 Consul 的 watch 命令實現(xiàn))。也就是說,我們使用 Consul-template 實現(xiàn)配置模板,然后拉取 Consul 配置渲染模板來生成 Nginx實際配置。Consul 環(huán)境搭建1.consul_0.7.5_linux_amd64.zip2.解壓 consul_0.7.5_linux_amd64.zip如果解壓出現(xiàn)該錯誤-bash: unzip: 未找到命令(每特教育&螞蟻課堂)上海每特教育科技余解決辦法yum -y install unzip3. 執(zhí)行以下 ./consul 出現(xiàn)以下信息就說明安裝4.啟動 consullinux Ip 地址 192.168.2
48、12.131./consul agent -dev -ui -node=consul-dev -client=315.臨時關(guān)閉systemctl stop firewalld6.瀏覽器31:8500(每特教育&螞蟻課堂)上海每特教育科技余7.使用 PostManHttp 服務(wù)參數(shù) 1參數(shù) 2Datacenter 指定數(shù)據(jù)中心,Address 指定服務(wù)IP,Service.Id 指定服務(wù)唯一標(biāo)識,Service.Service 指定服務(wù)分組,Service.tags指定服務(wù)(如測試環(huán)境、預(yù)發(fā)環(huán)境等),Service.Port 指定服務(wù)端
49、口。7.發(fā)現(xiàn) Http 服務(wù)nginx-upsync-module注意:清除之前 Nginx 環(huán)境,重新安裝。nginx-upsync-module 簡介Upsync 是新浪開源的基于Nginx 實現(xiàn)動態(tài)配置的模塊。Nginx-Upsync-Module 的功能是拉取Consul的后端 server 的列表,并動態(tài)更新 Nginx 的路由信息。此模塊不依賴于任何第模塊。Consul 作為 Nginx的 DB,利用 Consul 的 KV 服務(wù),每個 Nginx Work 進(jìn)程路由。的去拉取各個 upstream 的配置,并更新各自的(每特教育&螞蟻課堂)上海每特教育科技余nginx-u
50、psync-module 安裝文件1. 安裝 Nginxwget作用:實現(xiàn)反向2. 安裝 consulwget、負(fù)載負(fù)載庫作用:對動態(tài)負(fù)載均衡均配置實現(xiàn)3.安裝 nginx-upsync-modulewget作用:nginx 動態(tài)獲取最新 upstream 信息解壓安裝如果解壓出現(xiàn)該錯誤-bash: unzip: 未找到命令解決辦法yum -y install unzip安裝 Nginx解壓 Nginx配置 Nginx(每特教育&螞蟻課堂)上海每特教育科技余編譯 Nginx編譯的是報錯./configure: error: SSL modules require the OpenSSL
51、 library.解決辦法yum -y install openssl openssl-develUpstream 動態(tài)配置upsync 指令指定從 consul 哪個路徑拉取上游服務(wù)器配置;upsync_timeout 配置從 consul 拉取上游服務(wù)器配置的超時時間;upsync_interval 配置從 consul 拉取上游服務(wù)器配置的間隔時間;upsync_type 指定使用 consul 配置服務(wù)器;strong_dependency 配置 nginx 在啟動時是否強(qiáng)制依賴配置服務(wù)器,如果配置為 on,則拉取配置失敗時 nginx 啟動同樣失敗。upsync_dump_path
52、指定從 consul 拉取的上游服務(wù)器后持久化到的位置,這樣即使 consul 服務(wù)器出問題了,本地還有一個備份。(每特教育&螞蟻課堂)上海每特教育科技余注意:替換 consul中心地址創(chuàng)建 upsync_dump_pathmkdir /usr/local/nginx/conf/servers/upsync_dump_path 指定從 consul 拉取的上游服務(wù)器后持久化到的位置,這樣即使 consul 服務(wù)器出問題了, 本地還有一個備份。啟動 consul臨時關(guān)閉systemctl stop firewalldlinux Ip 地址 31./consul agent -dev -ui -node=consul-dev -client=31添加 nginxUpstream 服務(wù)1.使用 linux 命令方式curl -X PUT curl -X PUTput 請求2.使用 postmenput 請求負(fù)載均衡信息參數(shù)"weight":1, "max_fails":2, "fail_timeout":10, "down":0啟動 NginxNginxNginx 基于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- KTV清潔合同范本
- 出租電纜鋼板合同范本
- 個人賺取傭金合同范例
- 中介公租房合同范本
- 住家阿姨雇傭合同范本
- 農(nóng)村改造房出售合同范本
- 兄妹房屋出賣合同范例
- 產(chǎn)權(quán)代辦合同范本
- 專利權(quán)轉(zhuǎn)讓合同范本
- 創(chuàng)業(yè)辦公司合同范本
- 高效液相含量測定計算公式
- 六宮格數(shù)獨解題技巧
- 公安機(jī)關(guān)通用告知書模板
- 工程款支付審批流程圖
- 人教版七年級歷史下冊第一單元填空題
- 封頭重量和容積計算
- 《小學(xué)數(shù)學(xué)課程與教學(xué)》教學(xué)大綱
- 《手機(jī)攝影》全套課件(完整版)
- 彩色學(xué)生電子小報手抄報模板春節(jié)41
- 筒形件拉深成形工藝分析及模具設(shè)計
- JGJ_T231-2021建筑施工承插型盤扣式鋼管腳手架安全技術(shù)標(biāo)準(zhǔn)(高清-最新版)
評論
0/150
提交評論