當前位置:首頁 » 網頁前端 » 前端和oss
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端和oss

發布時間: 2022-11-05 08:29:58

1. Web直傳阿里雲OSS服務端臨簽名總結 2021-01-28

最近公司有新的需求,需要將文件上傳到阿里雲OSS,目前項目中的文件主要是存儲到自己的伺服器,這樣很容易受伺服器帶寬、硬體的影響,加上伺服器配置不高,應用服務很容易垮掉。之前也用過OSS,但是上傳文件都是比較小的10MB以內的文件,採用的是生成數據流的方式。這種情況已經無法滿足現在的應用場景,就又熟悉了一下SDK文檔,主要的實現方式有:

1、 上傳慢。先上傳到應用伺服器,再上傳到OSS,網路傳送多了一倍。如果數據直傳到OSS,不走應用伺服器,速度將大大提升,而且OSS是採用BGP帶寬,能保證各地各運營商的速度。

2、 擴展性不好。如果後續用戶多了,應用伺服器會成為瓶頸。

3、 費用高。由於OSS上傳流量是免費的。如果數據直傳到OSS,不走應用伺服器,那麼將能省下幾台應用伺服器。

https://help.aliyun.com/document_detail/32122.html

採用JavaScript客戶端直接簽名(參見 JavaScript客戶端簽名直傳 )時,AccessKey ID和AcessKey Secret會暴露在前端頁面,因此存在嚴重的安全隱患。因此,OSS提供了服務端簽名後直傳的方案。

流程如下圖所示:

本示例中,Web端向服務端請求簽名,然後直接上傳,不會對服務端產生壓力,而且安全可靠。但本示例中的服務端無法實時了解用戶上傳了多少文件,上傳了什麼文件。如果想實時了解用戶上傳了什麼文件,可以採用 服務端簽名直傳並設置上傳回調 。

OSS 可以通過阿里雲 STS (Security Token Service) 進行臨時授權訪問。阿里雲 STS 是為雲計算用戶提供臨時訪問令牌的Web服務。通過 STS,您可以為第三方應用或子用戶(即用戶身份由您自己管理的用戶)頒發一個自定義時效和許可權的訪問憑證。

STS 安全令牌、角色管理和使用相關內容詳情,請參考 RAM 角色管理 。調用 STS 服務介面 AssumeRole 來獲取有效訪問憑證即可。

前端調用,請根據自身情況進行調用,下面是vue的示例

我們在項目中最終採用的是STS臨時授權方案。

STS的優勢如下:

關於STS的介紹請查閱阿里雲官方文檔:

https://help.aliyun.com/document_detail/32093.html?spm=a2c4g.11186623.6.1409.13107d9ckOKzS6

在這邊不得不吐槽一下OSS的API,是真的很爛,基本找不到好的方法,都是基於網路才做出來的,當然,我使用的方法估計還有一些坑,只是能實現了我的功能。

STS臨時授權訪問OSS

https://help.aliyun.com/document_detail/100624.html?spm=a2c4g.11186623.2.5.600c6d13A0lSIR

vue直傳OSS

https://blog.csdn.net/qq_33270001/article/details/88999189

el-upload組件結合上傳阿里雲OSS實現更優交互

https://blog.csdn.net/fifteen718/article/details/85259438

Web直傳OSS

https://blog.csdn.net/weixin_33907511/article/details/91479830

OSS文件上傳(頁面直傳)

https://blog.csdn.net/linlin_0904/article/details/84583676

請問STS和簽名帶Policy的差別

https://developer.aliyun.com/ask/205943?spm=a2c6h.13524658

STS臨時授權訪問OSS

https://www.cnblogs.com/ggband/p/10218851.html

vue+element+sts臨時授權上傳大文件到阿里雲OSS時踩過的坑。

https://blog.csdn.net/aiguo94/article/details/111832776

Vue上傳阿里雲OSS(STS方式)

https://blog.csdn.net/qq_35775675/article/details/92797782

2. 無聲手槍的美國製造

二戰期間,美國的戰略情報局(OSS)主持研製和使用了一些特殊的武器,其中最有名的手槍有兩種,一種是FP-45「解放者」手槍,而另一種就是以下將介紹的OSS無聲手槍。 1942年6月13日,在美國正式加入第二次世界大戰後僅僅六個月,在美國參謀長聯席會議下建立了針對國外的情報機構戰略情報局(Office of Strategic Services),由綽號「瘋狂比爾」的威廉·多諾萬(William J. Donovan)上校領導,雖然這個情報機構沒有悠久的歷史,但多諾萬效仿英國的同行特別行動執行部(SOE)訓練,並迅速開展各項行動,而且在整個戰爭期間,OSS都跟SOE進行了廣泛而密切的合作。
多諾萬給OSS確定的兩項主要任務為收集情報和從事秘密戰爭,支持這些行動的三個主要功能部門分別是:特別行動處(從事秘密戰爭);秘密情報處(把全球地區劃分為四個地域進行情報收集);反間諜處(該處也稱為X-2)。此外,多諾萬還在OSS中設立了一系列專業部門來進行輔助工作,包括有:通過學術界來設計軍事策略的研究分析部;由專業廣告人和好萊塢編劇進行戰爭宣傳的道德行為部;聯絡被德國佔領的歐洲國家裡的工會進行破壞和顛覆活動的勞動部;還有專門負責研製各種特殊用途武器的研究發展部。
研究發展部第一任部長史丹利·洛威爾(Stanley P. Lovell)來自研製與國防研究委員會(National Defense Research Committee,簡稱NDRC)。這里也要簡單介紹一下為OSS提供器材研究支援的NDRC,而OSS消聲手槍的研製工作就是由NDRC領導的。
NDRC的歷史可以追溯到美國內戰期間,由美國科學委員會在林肯總統的授意下成立的美國科學院(American Academy of Sciences),該院成立的目的便是為軍隊研製新式武器提供支持,在第一次世界大戰期間又變成國防委員會(National Defense Council)的組織。到了二戰時期,他們又變成了NDRC。NDRC會由19個部門和若干專門委員會或專家組所組成,這些部門的研究領域極為廣泛,包括了:彈道學、沖擊爆炸效應、火箭器材、軍械配件、導彈、水下武器、火控裝置、爆炸品、化學品、吸收劑和氣溶膠、化工、交通運輸、電子通信、雷達、視覺偽裝、以及軍事學術方面的應用數學和物理研究。NDRC中最神秘的部門是第19部,它研究的「綜合武器」是為OSS及其所屬的英國分支機構專門針對解決「專題問題」。
到了1943年10月,OSS研究發展部門已經擴大由四個分支部門組成。其中技術部負責所有NDRC和英國SOE之間的項目聯系(洛威爾部長同時也是NDRC第19分部的聯絡人。);文檔部負責記錄和保密所有特工人員的檔案;偽裝部負責提供特種作戰和人員的掩護或偽裝裝置;特別助理部則為特工們提供其他三個部門負責范圍以外的其他支援。
針對敵後行動和秘密戰爭的需求,OSS的發展項目包括高標(Hi-Standard)無聲手槍、解放者.45 ACP口徑單發手槍,.22口徑毒刺(Stinger)手槍,.45 ACP口徑M3無聲沖鋒槍,還有種種匕首和刀具及弓弩、火柴盒相機、自殺葯物、迷葯、燃燒彈等多種裝備。其中最成功和最著名的武器之一便是高標無聲手槍。
當然,一支無聲槍在任何秘密行動中都可能被列為首選裝備,所以在OSS成立後不久,特工們就嘗試在.22 LR口徑的柯爾特「森林人」(Woodsman)手槍裝上仿製的馬克沁式消聲器來使用。這種消聲器連接在槍管延長段上,消聲器頂部配有條狀準星,配合手槍原本的標准照門使用。槍管的延長段據稱也提高了武器的精度,這種大型消聲器在很大程度上降低膛口雜訊,只是武器的尺寸變得太長,不太便於隱蔽攜帶。
其實以馬克沁式消聲器為原型的設計很早的時候已經通過美國軍方的試驗。Savage武器公司和Sedgley製造公司都生產過這種消聲器,然而由於美國聯邦法律限制了消聲器的使用,所以仿製馬克沁式消聲器的生產在1926年就停止。不過此時由於戰爭的需要,OSS要求設計一種更輕便的消聲器。於是在1942年10月27日,NDRC的計劃委員會提出了12項研究建議,其中第一項就是關於研製一種全新的消聲武器,其具體要求如下:1)無聲;2)無槍口焰;3)槍口初速至少在1,000fps(約305m/s);4)最好是.50口徑;5)裝填時間少於30秒。這份消聲武器研究的合同判給了位於新澤西州的西部電力公司(Western Electric Compan),他們受命研製的消聲器指標如下:在三十英尺外不能聽到武器發射的聲響;槍口焰特徵要極小;要能適合.45 ACP手槍、.30口徑的M1伽蘭德步槍或M1917恩菲爾德步槍。
該份研究合同於1943年4月6日簽署,三個星期後,西部電力公司向OSS提供了一把改裝的柯爾特「森林人」手槍,幾個月後,在阿伯丁射擊場對這種手槍進行了試驗,結果並不令人滿意。這種消聲型的柯爾特「森林人」手槍只有在使用高速彈時才能實施半自動,而且它的消聲效果也不佳。後來又試驗了鎢金合金製成的彈頭,雖然成功地大幅降低膛口雜訊,但卻出現膛壓過大和令人不快的套筒咔咔聲。後來又嘗試了給.32 ACP和.380 ACP口徑的柯爾特手槍加長槍管以安裝這種消聲器,但也失敗了。
與此同時,貝爾電話實驗室(Bell Telephone Laboratories)的工程師們研製了一種可安裝在高標手槍上的消聲器。這項設計的試驗效果好多了,於是NDRC也和貝爾電話實驗室簽訂了一份研究合同,由貝爾電話實驗室生產110支無聲手槍用於進一步的試驗。其中包括66支柯爾特「森林人」和「比賽靶」(Match Target)手槍,44支分別是A型、B型、D型和E型等不同槍管長度的高標手槍。這批試驗武器在1943年10月正式開始交貨。 通過試驗發現,由高標手槍改裝的無聲手槍的效果最好。於是在1943年11月22日,OSS采購處要求軍械處跟康涅狄格州紐黑文(New Haven)的高標手槍製造公司簽訂合同,定購1,500支以.22 LR口徑H-D軍用型手槍(也稱為HDM)為基礎加裝消聲器的手槍,該槍也稱為OSS無聲手槍。這項合同在1944年6月20日開始交貨,到1944年10月10日全部完成。在實際使用中OSS的特工們對這種槍比較滿意,於是在1944年8月18日又多訂購了1,000支,並在1944年10月10日完成交貨。
在此期間還發生了一個小插曲,在1944年7月突然有人注意到根據海牙公約第23e章節對達姆彈等擴張型彈頭的限制,這意味著軍事人員不能使用沒有被甲的裸鉛彈的輕武器,而.22 LR的普遍彈種卻正是裸鉛彈。於是此時已升為將軍的多諾萬便下令OSS當中的現役軍人停止使用OSS無聲手槍,除非研製了全被甲彈並配發使用,而文職人員則允許可以繼續配發和使用這種武器。換句話說,如果一組OSS的特工需要進行一次秘密行動,那麼他們當中的有人仍然屬於現役軍人,他就不能使用OSS無聲手槍開火,而其中的「平民」特工卻能使用OSS無聲手槍向敵人射擊。在實際行動當中有多少人會遵守這條官僚禁令呢?我這里沒有統計數字,不過為了解決這個問題,OSS也立即要求研製專門為現役軍人特工使用的全被甲結構的.22 LR彈。這項要求很快得到回應,到了1945年2月8日,OSS獲得了20,000發全被甲結構的T-42型.22 LR彈供軍人使用。不過,標準的雷明頓裸鉛彈仍然被OSS的特工大量使用。
二戰結束後,OSS變成了CIA,而OSS高標無聲手槍也被CIA的特工繼續使用。在朝鮮戰爭和越南戰爭中,不僅CIA的特工在使用這種武器,就是特種部隊也會在一些秘密行動中使用這種武器,例如偵察兵用此武器來摸哨。在冷戰時期,最有名的OSS無聲手槍屬於CIA的飛行員弗朗西斯·加里·鮑爾斯(Francis Gary Powers),他在1960年5月1日駕駛U2偵察機在蘇聯上空被擊落,這把槍在他身上被發現。據說前蘇聯對特種消聲武器槍和彈的研究正是始於他們繳獲的這把槍。
OSS無聲手槍基本上就是在高標HDM型手槍基礎上安裝消聲器組合而成,這是一種自由後坐式自動原理手槍。該槍的主要組成部分是:1)包括握把和槍管固定座在內的套筒座,這是機加生產的,套筒導軌加工在槍管固定座後面;2)槍管用銷子固定在套筒座上;3)套筒在槍管後面,內含擊針、拉殼鉤和復進簧組件;4)擊發機構包括扳機、扳機連桿、扳機簧、外露擊錘、擊錘簧和壓簧桿等。
該槍配用10發單排可卸彈匣,該彈匣可與柯爾特「森林人」手槍互換。彈匣解脫鈕位於握把側面,在扳機護圈根部。手動保險位於底把左側,可通過拇指操縱。
在高標HDM型手槍上,槍管前端安裝有三角形的固定準星,而OSS高標無聲手槍的準星則安裝在消聲器上。套筒後上方有缺口式照門,可調節風偏。 管狀消聲器全長7.75英寸(約197mm),直徑1英寸(25.4mm)。消聲器擰在從套筒上露出來的槍管上。槍管上開有4排泄氣孔,每排11個,泄氣孔直徑為0.125英寸(3.175mm)。消聲器內有多個由銅絲網捲成的圓圈,通過吸熱原理使火葯燃氣冷卻,降低氣體壓力。這種消聲器使膛口雜訊降低超過20dB,在那個時代來說,這個效果已經是相當出色了。吸熱式消聲器的缺點是吸熱材料容易積聚火葯殘渣,需要經常清洗,但OSS無聲手槍的消聲器是設計成一次性用品,本身不能分解維護。該消聲器的使用壽命估計為200發左右,不過以這種特工武器的使用特色,這樣的壽命足夠給一個特工平時練習和實際使用了。另外消聲器本身可以從槍管上擰下來,這是為了便於維護手槍,但也方便了更換一個新的消聲器。
OSS的第一份訂購合同中要求對該手槍表面作烤藍處理,而第二份合同則要求對手槍作磷酸鹽處理。不過這兩份合同中的消聲器均要求作磷酸鹽處理。
要分解OSS高標無聲手槍時,首先卸下彈匣,拉開套筒確認彈膛是空的。當套筒拉到底後,按下套筒頂部的小卡榫,這樣可把復進簧壓在後面,然後讓套筒慢慢前移,直到套筒座右側、握把後方的分解柄可以轉動的位置——這時便把分解旋柄向下旋轉,同時保持壓住套筒頂部的復進簧固定卡榫,這時便可把套筒向後卸出。
重新組裝手槍時,也要把復進簧壓縮在後面,如果復進簧已經釋放,隨便用個小工具把它壓回套筒底部,然後壓下套筒頂部的卡榫固定。然後把擊錘壓倒,再把套筒放回套筒座的導槽上,把套筒往前推,這樣時便可放開復進簧固定卡榫。
即使在戰爭期間立下了赫赫戰功,OSS無聲手槍卻沒有好的結果,甚至沒有被列為美國政府財產。今天,真正的原裝OSS無聲手槍已經很少見了,私人收藏的也是非常罕有。有一家輕武器技術有限公司(Arms Tech Ltd.)仿製出和當年幾乎完全相同的OSS高標無聲手槍供輕武器收藏家或軍事歷史愛好者購買。甚至連當年的套筒左側的銘文「HISTANDARD MODEL H-D MILITARY(高標H-D型軍用)」都造得一模一樣,不過現代技術下生產的這種山寨OSS無聲手槍比當年的真品要輕巧一些。
全槍長350 mm槍管長171 mm槍高127 mm空槍重1.36 kg彈匣容量10 rds有效射程15 m。

3. 零基礎學java應該從哪裡開始

零基礎學Java最開始要做的就是整理出一份Java學習路線,只有合理規劃學習路線才能在最短的時間里有效的學習。下面來看一份Java的學習路線以供參考:
第一階段、JavaSE 課時:20天
• Java基礎語法• 面向對象基礎• 常用API• 集合框架• 線程(池)• 代理反射• 網路編程
第二階段、JavaWeb 課時:15天
• html•Css•javaScript•Jquery• JavaWeb• session(cookie)• filter• 上傳和下載組件• JSP• Tomcat伺服器• Druid連接池
第三階段、企業級框架 課時:25天
• Spring• SpringMVC• SpringBoot• MyBatis(MyBatis-plus)• Maven管理• Git•Tomcat集成•資料庫分庫分表
第四階段、互聯網前沿技術 課時:25天
• Dubbo分布式框架• SpringCloud微服務• RocketMQ消息中間件• Redis緩存中間件• ES查詢中間件• Vue前端框架•OSS對象存儲中間件

4. 中國聯通的BSS、CRM、ESS、OSS之間的關系,以及和中國聯通的 固網、移網之間的關系和聯系

CRM是客戶關系系統,用來管理聯通企業與客戶之間的關系數據。
BSS是前端營業系統的簡稱,例如開戶、繳費、客戶信息查詢等都在這類系統中實現。
OSS是後端維護系統的總稱,例如後端報修、專業網管管理、硬體數據修改都在這類系統中實現。
ESS專用於管理終端銷售。

這類系統的分類,與聯通固網、移動網的分類角度不同,前者站在企業內部系統功能角度來分類,而後者站在提供業務角度來分類。換言之,固網需要用到OSS來管理後端硬體,也需要用到CRM系統來管理前台客戶數據;移動網同樣也需要用到這些系統。

5. 阿里雲架構師解讀四大主流游戲架構

游戲 行業是阿里雲最早聚焦的行業之一,近年來 游戲 行業的變化、雲計算產品技術的變化都與日俱進。隨著行業業務的變化、技術架構的演進以及阿里雲產品的迭代演進,整體的產品技術選型在不同的 游戲 場景、業務場景也不盡相同。本文將聚焦阿里雲彈性計算產品在 游戲 行業的方案實踐經驗。

當前, 游戲 行業的各種場景和行業發展密不可分。簡單回顧電子 游戲 的發展,80年代的黑白機,90年代的PC單機 游戲 ,00年代前夕隨著互聯網的發展網路 游戲 開始盛行,2010年後隨著移動設備的逐漸普及,手游在國內開始興起。

從 游戲 終端來區別,主要有:主機 游戲 (往往是3A 游戲 )、PC 游戲 、移動 游戲 和網頁 游戲 等。目前出現跨平台多端 游戲 ,以及雲 游戲 化的趨勢。

關於 游戲 的品類區別會有非常多的維度:RPG(角色扮演)、MOBA類、競技類、FPS(射擊類)、休閑類、卡牌類、棋牌類、SLG(策略類)等等。目前有多品類融合玩法裂變的趨勢。

隨著國內防沉迷、版號因素,近年來 游戲 行業誕生了越來越多的精品 游戲 ,出海全球化乃至區域化,以及整體存量用戶增速放緩,長線運營、精細運營以及私域社區等運營方式也在悄然變化。

不同的業務場景技術架構不盡相同,如競技類 游戲 和卡牌類 游戲 對計算的需求就有所區別,雲 游戲 與常規的網路 游戲 架構也有所區別。這里主要從 游戲 服和 游戲 平台、大數據、雲 游戲 這四個目前常見的場景簡單介紹其架構。

游戲 服,從 游戲 類型來看有RPG、FPS、MOBA、SLG、棋牌、休閑等等;從 游戲 平台來看通常有主機、手機、PC等;從業務發行來看有全球、國內、海外,從部署架構來看有集中部署和分區部署;從技術架構來看, 游戲 行業也有逐漸分層解耦的趨勢,但與互聯網應用相比,有一定其獨特性。

因為 游戲 的強交互性特點, 游戲 技術架構與其他互聯網應用相比有一定獨特性。 游戲 需要保持會話連接,也就是從一個客戶端到服務端的長連接,便於對客戶端中玩家的操作、行為等進行及時的反饋以及推送給共同 游戲 或對戰的其他玩家,所以 游戲 普遍對網路質量更加敏感,網路質量較差的情況會使長連接斷開或重連,引起玩家掉線。 游戲 也需要保持會話的狀態,既服務端會保持一份玩家的實體,當玩家進行操作時,下次通信的數據會依賴之前的通信的數據,這也是一些MMO(多人在線)大型 游戲 對網路吞吐性能要求較高的原因之一。再比如FPS、MOBA類等多人對戰類 游戲 ,交互性更強,對網路延遲容忍度更低,要求低延遲。因為 游戲 需要比較高密度的記錄玩家的操作以及結果,所以有頻繁寫入數據的特點,這類場景需要較強的IO性能。因為 游戲 強交互性、低延遲的特點,其技術架構也和互聯網應用不同,在逐漸分層解耦的同時,需要保證 游戲 玩家的交互效果,同時也會依賴到底層伺服器的計算能力。

這些都是 游戲 場景普遍存在的特點:長連接保持會話、保持狀態、低延遲網路、高IO吞吐、高計算性能。

游戲 的部署架構會結合 游戲 業務特點、 游戲 運營需求來制定 游戲 服務,有分區分服、全區全服業務邏輯,分區分服還是全區全服,最大的架構差異在於數據是不是一套。而從部署方式看,主要是集中式部署和分區域部署。

集中部署就是不論 游戲 玩家在哪裡, 游戲 服務集中在一個區域,適合對網路延遲要求通常不高的 游戲 類型,如休閑類;分區部署是指 游戲 伺服器根據 游戲 玩家地域分布,分區域部署,方便就近接入,適合對網路延遲要求較高的 游戲 類型,如MOBA、FPS類。

典型架構

MMO類有高並發特點,大量玩家並發的高計算量負載對伺服器的計算能力和穩定性有著極高的要求。同時MMO類 游戲 有著比較強的PVE或PVP特性,對網路延遲的容忍度較低。

其中網關伺服器負責所有網路數據包的轉發,通常是網路負載較集中的點,對於網路吞吐能力要求較高。單個 游戲 區承載玩家數量高,邏輯伺服器通常按照場景地圖來劃分,規模再大會通過分區的方式實現。

數據中心伺服器負責緩存玩家數據並非同步入庫,保障玩家客戶快速獲取和寫入數據,對於可用性要求較高,需要配合應用層實現數據容錯機制。

日誌伺服器承載了大區所有業務行為的日誌收集及處理的壓力,對磁碟寫入性能要求較高,通常採用多台分組方式實現。

(1)MMO 游戲 服性能與穩定需求,建議使用最第7代ECS實例,根據實際需求選型c計算型(CPU與內存配比1:2)/g通用型(1:4)/r內存型(1:8),Intel Ice Lake 2.9GHz基頻3.5GHz睿頻提供超高性能,能更好地優化 游戲 體驗。

(2)非同步落庫以及日誌伺服器,對於磁碟讀寫性能要求高的場景,建議雲上使用ESSD PL 0/1/2/3根據業務性能需要選擇,避免磁碟讀寫瓶頸。

(3)在 游戲 日常版本更新中,需要各個地域Region鏡像的快速復制,基於ESSD快照異地復制的能力,能夠提升鏡像復制效率。

(4)分區分服等場景往往需要快速地開服滾服合服,通過CADT雲速搭、ESS彈性伸縮、OOS運維編排、ROS資源編排等雲上運維工具搭配產品使用,能夠提升雲上運維效率。

ii. FPS、MOBA類 游戲 架構介紹

MOBA類 游戲 主要包括PVP系統、PVE系統、 游戲 平台等幾個主要部分,其中PVP戰斗是MOBA/FPS 游戲 的核心。

PVP、PVE、 游戲 平台功能部署於同一VPC中,構成 游戲 大區;戰斗伺服器(往往)單獨跨地域部署。

游戲 客戶端首先接入到登錄伺服器中,完成登錄認證、計費等 游戲 平台邏輯。為避免單點問題,所以 游戲 平台服務往往需要高可用方案。可利用雲上高可用方案,包括便捷的運維工具滿足業務高可用需求。

FPS/MOBA競技 游戲 ,往往對延遲特別敏感,可以想像,競技類 游戲 中對戰的 游戲 場景:玩家操控人物,在地圖里步伐飄逸,槍聲密集,每一顆子彈都是一次時間加上空間的矢量計算,而且需要在主進程中完成計算,那麼算力需求就隨著房間玩家數量上升而指數爆炸,5V5的房間和大房間100人(吃雞)對算力的需求完全不同。

游戲 這部分重算力場景,推薦阿里雲7代高主頻或七代實例,更高的單核性能提供更好的戰斗效果。

戰斗房間類 游戲 ,因為業務本身峰谷特性,靈活地使用雲上資源的彈性能力,往往會較好地優化整體的資源使用成本。阿里雲彈性計算本身提供了非常靈活的付費方式,包括常規的按量實例、包月包年實例、以及通過節省計劃/預留實例券去抵扣按量實例資源,兼顧資源靈活使用的同時達到更優的成本。

此外,為更進一步釋放開發運維的效率,當前一些 游戲 也採用了容器化技術架構,阿里雲的ACK+ECS/ECI彈性容器實例組合搭配使用,更進一步釋放了基礎資源的靈活性和彈性能力。

業務場景

游戲 平台(不限於FPS、MOBA類)主要提供的服務:官網、客服、注冊、登錄、充值、兌換、商城、推送、公告、社區、SDK及郵件、簡訊等公共服務;包括內容審核、視頻錄制、彈幕、轉碼、剪輯、RTC這些業務需要的基礎服務,以及運維監控、發布平台、測試平台這些運維等平台服務。

這部分更接近於通用的互聯網技術架構,以服務為顆粒度解耦,接入->網關->應用->資料庫。

技術特點

這往往通常需要構建高可用基礎架構來提升穩定性,業務突發期往往需要一定的彈性能力。相比於 游戲 服務這部分容器化就更加普及,也更容易通過雲上的比如彈性容器實例去應對流量峰值場景。在視頻錄制場景,對實時性要求較高時,往往會基於GPU能力構建,這部分阿里雲也提供了vGPU/cGPU能力,釋放GPU的靈活性。

大數據是當前 游戲 業務經營、 游戲 運營主要的技術手段,主要面向平台數據運營、 游戲 數據分析、廣告轉化分析、安全運營分析等 游戲 核心運營場景。不同的場景對實時性要求不同,實時查詢檢索通常是經營分析、客戶受理、玩家監測、在線等場景;離線報表通常是玩家行為分析、用戶畫像、特徵挖掘等場景。

總體而言,實時性業務更多是業務查詢類、簡單計算類任務,比如買量轉化的分析;離線類基本是分析類、預測類任務,比如 游戲 玩法分析。

從技術架構來看,得益於開源社區技術棧的高豐富度,大數據具體的技術選擇非常之多,整體從存算一體到存算分離,也誕生像數據倉庫、數據湖乃至湖倉一體等概念。

從數據架構流程來看,從數據源->數據採集、傳輸->數據計算、存儲->數據應用,其中可選看技術方案也需要因地制宜。

從部署架構來看,不同的 游戲 公司處在不同的數據建設階段,會有不同的選擇傾向,包括完全自建、基於雲自建大數據、基於雲上託管、以及利用更多雲上成熟的產品技術去豐富整體的大數據能力集,而後者也成為越來越多客戶的選擇。

拿雲上大數據方案舉例來講,比如實時計算部分,選擇SLS採集、Kafka數據網關通道,通過Flink做數據計算,通過ES或CK做數據分析,通過ADB以及QuickBI做數據應用展示。離線方案通過OSS做冷數據存儲,Spark、Hive、HDFS等組件做數據計算存儲,通過CK匯聚分析,通過Dataworks做數據應用。

具體計算存儲的產品選型,主要根據不同的業務特性以及大數據應用特性來區分,根據數據容量、IOPS、吞吐、讀寫特點以及性價比來選擇。

如剛剛舉例的實時計算/近實時計算場景,Flink具備高性能、低延遲特點,所以是計算密集、網路性能高場景,推薦選型七代ECS實例或6代增強實例;如HDFS需要超大存儲容量,高吞吐,推薦D系列本地盤實例,如D2S存儲型本地盤實例。Remote Shuffle Service等處理結果多的場景,讀寫處理頻繁如大量的join計算,需要綜合來看計算、網路、存儲性能以及綜合成本來選擇通用實例(如第7代ECS實例)或i系列本地盤實例。所以,最終在雲上的資源選型,在性能滿足的前期下,需要評估通過網路傳輸數據成本高(雲盤),還是就地取材計算成本高(本地盤),不同模型、不同量級選擇不同。

從內存處理(成本最高、性能最好、存儲容量最小)、SSD本地盤、HDD本地盤、ESSD雲盤、OSS對象存儲(成本最優、性能一般、存儲容量最大),逐漸分層解耦,還帶來一個好處:充分釋放了雲上彈性的能力,可以利用更輕巧的彈性計算產品(如SPOT搶占式實例方式,或ECI容器實例)進行大數據計算,達到更好的彈性能力去滿足業務需求的同時也能節約更多的成本。

雲 游戲 主要分終端和雲端。終端部分基於Windows、iOS、Linux等操作系統的終端設備包括手機、平板、電腦、電視機、VR一體機等。雲端架構主要是 游戲 應用層、雲 游戲 平台層、IaaS基礎資源層,應用層包括PC 游戲 、手游、VR 游戲 、H5 游戲 等多種類型的 游戲 應用;平台層雲 游戲 必須的運營平台、支撐平台、流化技術平台等;IaaS基礎資源層包括基礎網路、基於X86架構以及ARM架構的GPU伺服器。

雲 游戲 落地,在技術上也經歷了諸多挑戰,為滿足端到端高性能低時延,網路調度、指令串流、編解碼、多終端的SDK適配等等都是雲 游戲 場景中不可避免的技術問題。

對於雲端算力來講,阿里雲解決了雲端渲染、串流以及編解碼問題,並通過全系列GPU產品來滿足雲手游、端游、VR乃至企業級視覺渲染場景的需求。

總結來講,阿里雲彈性計算通過雲上的串流、編碼加速、渲染加速等全套的技術幫助 游戲 客戶給雲 游戲 玩家提供更好的性能體驗,通過基於阿里雲全球數據中心可以幫助雲 游戲 客戶覆蓋更多的用戶,通過GPU多種產品形態和整體的彈性能力,也幫助到 游戲 客戶去更快捷更靈活的構建其雲 游戲 業務。

阿里雲通過多年的技術積累和持續的運營,提供了大規模的基礎設施雲服務,目前在全球部署了26個地域、82個可用區,通過優異穩定的性能表現幫助 游戲 客戶高效穩定地運行 游戲 業務,為玩家提供極致順滑的 游戲 體驗,並通過技術手段不斷地幫助 游戲 客戶優化用雲成本。

國內的業務出海、 游戲 出海也是現階段大的趨勢之一,很多 游戲 公司已經把出海從業務可選項變成了必選項之一。在2022年3月,阿里雲上線了韓國和泰國兩大Region,能夠為本地化的 游戲 業務提供更流暢、更穩定的 游戲 體驗,以此希望能在 游戲 客戶出海的業務領域,提供更多的幫助。

當然,作為內容與 科技 兩大熱門領域的交叉領域, 游戲 產業日新月異,架構也隨著前端業務的需要不斷改變。阿里雲彈性計算也針對 游戲 廠商的不同架構,陸續推出了不同的雲伺服器類型和付費方式,以及雲上運維套件,以幫助客戶降本增效。

原文鏈接:http://click.aliyun.com/m/1000336551/

6. web前端的移動端的兼容性問題怎麼解決

//兼容IE瀏覽器的
<meta http-equiv="X-UA-Compatible" content="IE=edge">
//兼容移動端的
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
//html5.shiv兼容不支持html5 的

<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
一般在head中添加這幾個之後,移動端就沒有什麼大問題了,希望對你有幫助,望採納!

7. 現在什麼技術取代了jsp

Spring Boot一部分取代了jsp:
以前老的方式是:
1.客戶端請求
2.服務端的servlet或controller接收請求(路由規則由後端制定,整個項目開發的權重大部分在後端)
3.調用service,代碼完成業務邏輯
4.返回jsp
5.jsp展現一些動態的代碼
新的方式是:
1.瀏覽器發送請求
2.直接到達html頁面(路由規則由前端制定,整個項目開發的權重前移)
3.html頁面負責調用服務端介面產生數據(通過ajax等等)
4.填充html,展現動態效果。
(有興趣的童鞋可以訪問一下阿里巴巴等大型網站,然後按一下F12,監控一下你刷新一次頁面,他的http是怎麼玩的,大多數都是單獨請求後台數據,使用json傳輸數據,而不是一個大而全的http請求把整個頁麵包括動+靜全部返回過來)
這樣做的好處是:
1.可以實現真正的前後端解耦,前端伺服器使用nginx。
前端伺服器放的是css,js,圖片等等一系列靜態資源(甚至你還可以css,js,圖片等資源放到特定的文件伺服器,例如阿里雲的oss,並使用cdn加速),前端伺服器負責控制頁面引用,跳轉,調用後端的介面,後端伺服器使用tomcat。
(這里需要使用一些前端工程化的框架比如nodejs,react,router,react,rex,webpack)
2.發現bug,可以快速定位是誰的問題,不會出現互相踢皮球的現象。
頁面邏輯,跳轉錯誤,瀏覽器兼容性問題,腳本錯誤,頁面樣式等問題,全部由前端工程師來負責。
介面數據出錯,數據沒有提交成功,應答超時等問題,全部由後端工程師來解決。
雙方互不幹擾,前端與後端是相親相愛的一家人。
3.在大並發情況下,我可以同時水平擴展前後端伺服器,比如淘寶的一個首頁就需要2000台前端伺服器做集群來抗住日均多少億+的日均pv。
(去參加阿里的技術峰會,聽他們說他們的web容器都是自己寫的,就算他單實例抗10萬http並發,2000台是2億http並發,並且他們還可以根據預知洪峰來無限拓展,很恐怖,就一個首頁。。。)
4.減少後端伺服器的並發壓力,除了介面以外的其他所有http請求全部轉移到前端nginx上。
5.即使後端服務暫時超時或者宕機了,前端頁面也會正常訪問,只不過數據刷不出來而已。
6.也許你也需要有微信相關的輕應用,那樣你的介面完全可以共用,如果也有app相關的服務,那麼只要通過一些代碼重構,也可以大量復用介面,提升效率。
7.頁面顯示的東西再多也不怕,因為是非同步載入。

8. day06項目【整合阿里雲OSS和Excel導入分類】

為了解決海量數據存儲與彈性擴容,項目中我們採用雲存儲的解決方案- 阿里雲OSS。  

1、開通「對象存儲OSS」服務

(1)申請阿里雲賬號

(2)實名認證

(3)開通「對象存儲OSS」服務

(4)進入管理控制台

2、創建Bucket

選擇:標准存儲、公共讀、不開通

3、上傳默認頭像

創建文件夾avatar,上傳默認的用戶頭像





1、在service模塊下創建子模塊service-oss

2、配置pom.xml

service-oss上級模塊service已經引入service的公共依賴,所以service-oss模塊只需引入阿里雲oss相關依賴即可,

service父模塊已經引入了service-base模塊,所以Swagger相關默認已經引入

3、配置application.properties

4、logback-spring.xml


5、創建啟動類

創建OssApplication.java

6、啟動項目

報錯 :

spring boot 會默認載入org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration這個類,

而DataSourceAutoConfiguration類使用了@Configuration註解向spring注入了dataSource bean,又因為項目(oss模塊)中並沒有關於dataSource相關的配置信息,所以當spring創建dataSource bean時因缺少相關的信息就會報錯。

即可成功:

1、從配置文件讀取常量

創建常量讀取工具類:ConstantPropertiesUtil.java

使用@Value讀取application.properties里的配置內容

用spring的 InitializingBean 的 afterPropertiesSet 來初始化配置信息,這個方法將在所有的屬性被初始化後調用。

2、文件上傳

創建Service介面:uploadFileAvatar.java

實現:OssServiceImpl.java

參考SDK中的:Java->上傳文件->簡單上傳->流式上傳->上傳文件流

3、控制層

創建controller:FileUploadController.java

4、重啟oss服務

5、Swagger中測試文件上傳

解決上傳文件覆蓋問題:

測試:

6、配置nginx反向代理

配置nginx實現請求轉發的功能:

驗證:


1、復制頭像上傳組件

從vue-element-admin復制組件:

vue-element-admin/src/components/ImageCropper

vue-element-admin/src/components/PanThumb

2、前端參考實現

src/views/components-demo/avatarUpload.vue

3、前端添加文件上傳組件

src/views/e/teacher/save.vue

template:


引入組件模塊:

4、設置默認頭像(也可不設置)

onfig/dev.env.js中添加阿里雲oss bucket地址

組件中初始化頭像默認地址

5、js腳本實現上傳和圖片回顯

二、測試文件上傳

前後端聯調


1、數據導入:減輕錄入工作量

2、數據導出:統計信息歸檔

3、數據傳輸:異構系統之間數據傳輸

1、EasyExcel特點

    Java領域解析、生成Excel比較有名的框架有Apache poi、jxl等。但他們都存在一個嚴重的問題就是非常的耗內存。如果你的系統並發量不大的話可能還行,但是一旦並發上來後一定會OOM或者JVM頻繁的full gc。

    EasyExcel是阿里巴巴開源的一個excel處理框架, 以使用簡單、節省內存著稱 。EasyExcel能大大減少佔用內存的主要原因是在解析Excel時沒有將文件數據一次性全部載入到內存中,而是從磁碟上一行行讀取數據,逐個解析。

    EasyExcel採用一行一行的解析模式,並將一行的解析結果以觀察者的模式通知處理(AnalysisEventListener)。


1、創建一個普通的maven項目

項目名:excel-easydemo

2、pom中引入xml相關依賴

3、創建實體類

設置表頭和添加的數據欄位

4 、實現寫操作

TestEasyExcel.java

(1)創建方法循環設置要添加到Excel的數據

(2)實現最終的添加操作(寫法一)

(3)實現最終的添加操作(寫法二)

public static void main(String[] args) throws Exception {

         // 寫法2,方法二需要手動關閉流

        //實現excel寫的操作

        //1 設置寫入文件夾地址和excel文件名稱

        String filename = "F:\write.xlsx";

        ExcelWriter excelWriter=EasyExcel.write(fileName,DemoData.class).build();

        WriteSheet writeSheet=EasyExcel.writerSheet("寫入方法二").build();

        excelWriter.write(data(),writeSheet);

        /// 千萬別忘記finish 會幫忙關閉流

        excelWriter.finish();

    }

1、創建實體類

2、創建讀取操作的監聽器

3、調用實現最終的讀取

public class TestEasyExcel {

    public static void main(String[] args) {

        //實現excel讀操作

         // 寫法1:

        String filename = "F:\write.xlsx";

        // 這里 需要指定讀用哪個class去讀,然後讀取第一個sheet 文件流會自動關閉

        EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet().doRead();

         // 寫法2:

          InputStream in = new BufferedInputStream(new FileInputStream("F:\01.xlsx"));

        ExcelReader excelReader = EasyExcel.read(in, DemoData.class, new ExcelListener()).build();

        ReadSheet readSheet = EasyExcel.readSheet(0).build();

        excelReader.read(readSheet);

        // 這里千萬別忘記關閉,讀的時候會創建臨時文件,到時磁碟會崩的

        excelReader.finish();

    }

1、編輯Excel模板

2、將文件上傳至阿里雲OSS

1、添加路由

2、添加vue組件

1、js定義數據

2、template

3、js上傳方法

4、回調函數


1、service-e模塊配置依賴

1、ESubjectController

2、創建和Excel對應的實體類

3、ESubjectService

(1)介面

(2)實現類

4、創建讀取Excel監聽器



1、參考 views/tree/index.vue

2、創建api

api/e/subject.js

3、list.vue

1、創建vo

2、創建controller

9. javascript 上傳文件到阿里雲的oss,上傳文件成功後怎麼獲取文件的真實路徑

如果你直接使用 javascript 將阿里雲的accessId、accessKey寫在頁面上是不安全的,你可以使用後台存儲這些敏感的信息,官網有相關的SDK ,你可以選擇你常用的。

在後台編寫你的回調函數,將回調函數憑證信息返回給前端,前端使用回調函數憑證訪問OSS,就可以獲取到回調函數信息。

10. OSS無聲手槍主要組成部分有哪些

通過試驗發現,由高標手槍改裝的無聲手槍的效果最好。於是在1943年11月22日,OSS采購處要求軍械處跟康涅狄格州紐黑文(NewHaven)的高標手槍製造公司簽訂合同,定購1,500支以.22LR口徑H-D軍用型手槍(也稱為HDM)為基礎加裝消聲器的手槍,該槍也稱為OSS無聲手槍。這項合同在1944年6月20日開始交貨,到1944年10月10日全部完成。在實際使用中OSS的特工們對這種槍比較滿意,於是在1944年8月18日又多訂購了1,000支,並在1944年10月10日完成交貨。

在此期間還發生了一個小插曲,在1944年7月突然有人注意到根據海牙公約第23e章節對達姆彈等擴張型彈頭的限制,這意味著軍事人員不能使用沒有被甲的裸鉛彈的輕武器,而.22LR的普遍彈種卻正是裸鉛彈。於是此時已升為將軍的多諾萬便下令OSS當中的現役軍人停止使用OSS無聲手槍,除非研製了全被甲彈並配發使用,而文職人員則允許可以繼續配發和使用這種武器。

換句話說,如果一組OSS的特工需要進行一次秘密行動,那麼他們當中的有人仍然屬於現役軍人,他就不能使用OSS無聲手槍開火,而其中的「平民」特工卻能使用OSS無聲手槍向敵人射擊。在實際行動當中有多少人會遵守這條官僚禁令呢?我這里沒有統計數字,不過為了解決這個問題,OSS也立即要求研製專門為現役軍人特工使用的全被甲結構的.22LR彈。這項要求很快得到回應,到了1945年2月8日,OSS獲得了20,000發全被甲結構的T-42型.22LR彈供軍人使用。不過,標準的雷明頓裸鉛彈仍然被OSS的特工大量使用。

二戰結束後,OSS變成了CIA,而OSS高標無聲手槍也被CIA的特工繼續使用。在朝鮮戰爭和越南戰爭中,不僅CIA的特工在使用這種武器,就是特種部隊也會在一些秘密行動中使用這種武器,例如偵察兵用此武器來摸哨。在冷戰時期,最有名的OSS無聲手槍屬於CIA的飛行員弗朗西斯·加里·鮑爾斯(FrancisGaryPowers),他在1960年5月1日駕駛U2偵察機在蘇聯上空被擊落,這把槍在他身上被發現。據說前蘇聯對特種消聲武器槍和彈的研究正是始於他們繳獲的這把槍。

OSS無聲手槍基本上就是在高標HDM型手槍基礎上安裝消聲器組合而成,這是一種自由後坐式自動原理手槍。該槍的主要組成部分是:(1)包括握把和槍管固定座在內的套筒座,這是機加生產的,套筒導軌加工在槍管固定座後面。

(2)槍管用銷子固定在套筒座上。

(3)套筒在槍管後面,內含擊針、拉殼鉤和復進簧組件。

(4)擊發機構包括扳機、扳機連桿、扳機簧、外露擊錘、擊錘簧和壓簧桿等。

該槍配用10發單排可卸彈匣,該彈匣可與柯爾特「森林人」手槍互換。彈匣解脫鈕位於握把側面,在扳機護圈根部。手動保險位於底把左側,可通過拇指操縱。

在高標HDM型手槍上,槍管前端安裝有三角形的固定準星,而OSS高標無聲手槍的準星則安裝在消聲器上。套筒後上方有缺口式照門,可調節風偏。