㈠ 如何搭建億級並發的系統架構
想設計億萬級高並發架構,你要先知道高並發是什麼?
面對流量高峰,不同的企業是如何通過技術手段解決高並發難題的呢?
0、引言
軟體系統有三個追求:高性能、高並發、高可用,俗稱三高。三者既有區別也有聯系,門門道道很多,全面討論需要三天三夜,本篇討論高並發。
高並發(High Concurrency)。並發是操作系統領域的一個概念,指的是一段時間內多任務流交替執行的現象,後來這個概念被泛化,高並發用來指大流量、高請求的業務情景,比如春運搶票,電商雙十一,秒殺大促等場景。
很多程序員每天忙著搬磚,平時接觸不到高並發,哪天受不了跑去面試,還常常會被面試官犀利的高並發問題直接KO,其實吧,高並發系統也不高深,我保證任何一個智商在線的看過這篇文章後,都能戰勝恐懼,重拾生活的信心。
本文先介紹高並發系統的度量指標,然後講述高並發系統的設計思路,再梳理高並發的關鍵技術,最後結合作者的經驗做一些延伸探討。
1、高並發的度量指標
既然是高並發系統,那並發一定要高,不然就名不副實。並發的指標一般有QPS、TPS、IOPS,這幾個指標都是可歸為系統吞吐率,QPS越高系統能hold住的請求數越多,但光關注這幾個指標不夠,我們還需要關注RT,即響應時間,也就是從發出request到收到response的時延,這個指標跟吞吐往往是此消彼長的,我們追求的是一定時延下的高吞吐。
比如有100萬次請求,99萬次請求都在10毫秒內響應,其他次數10秒才響應,平均時延不高,但時延高的用戶受不了,所以,就有了TP90/TP99指標,這個指標不是求平均,而是把時延從小到大排序,取排名90%/99%的時延,這個指標越大,對慢請求越敏感。
除此之外,有時候,我們也會關注可用性指標,這可歸到穩定性。
一般而言,用戶感知友好的高並發系統,時延應該控制在250毫秒以內。
什麼樣的系統才能稱為高並發?這個不好回答,因為它取決於系統或者業務的類型。不過我可以告訴你一些眾所周知的指標,這樣能幫助你下次在跟人扯淡的時候稍微靠點兒譜,不至於貽笑大方。
通常,資料庫單機每秒也就能抗住幾千這個量級,而做邏輯處理的服務單台每秒抗幾萬、甚至幾十萬都有可能,而消息隊列等中間件單機每秒處理個幾萬沒問題,所以我們經常聽到每秒處理數百萬、數千萬的消息中間件集群,而像阿某的API網關,每日百億請求也有可能。
2、高並發的設計思路
高並發的設計思路有兩個方向:
垂直方向擴展,也叫豎向擴展
水平方向擴展,也叫橫向擴展
垂直方向:提升單機能力
提升單機處理能力又可分為硬體和軟體兩個方面:
硬體方向,很好理解,花錢升級機器,更多核更高主頻更大存儲空間更多帶寬
軟體方向,包括用各快的數據結構,改進架構,應用多線程、協程,以及上性能優化各種手段,但這玩意兒天花板低,就像提升個人產出一樣,996、007、最多24 X 7。
水平方向:分布式集群
為了解決分布式系統的復雜性問題,一般會用到架構分層和服務拆分,通過分層做隔離,通過微服務解耦。
這個理論上沒有上限,只要做好層次和服務劃分,加機器擴容就能滿足需求,但實際上並非如此,一方面分布式會增加系統復雜性,另一方面集群規模上去之後,也會引入一堆AIOps、服務發現、服務治理的新問題。
因為垂直向的限制,所以,我們通常更關注水平擴展,高並發系統的實施也主要圍繞水平方向展開。
3、高並發的關鍵技術
玩具式的網路服務程序,用戶可以直連伺服器,甚至不需要資料庫,直接寫磁碟文件。但春運購票系統顯然不能這么做,它肯定扛不住這個壓力,那一般的高並發系統是怎麼做呢?比如某寶這樣的正經系統是怎麼處理高並發的呢?
其實大的思路都差不多,層次劃分 + 功能劃分。可以把層次劃分理解為水平方向的劃分,而功能劃分理解為垂直方向的劃分。
首先,用戶不能直連伺服器,要做分布式就要解決「分」的問題,有多個服務實例就需要做負載均衡,有不同服務類型就需要服務發現。
集群化:負載均衡
負載均衡就是把負載(request)均衡分配到不同的服務實例,利用集群的能力去對抗高並發,負載均衡是服務集群化的實施要素,它分3種:
DNS負載均衡,客戶端通過URL發起網路服務請求的時候,會去DNS伺服器做域名解釋,DNS會按一定的策略(比如就近策略)把URL轉換成IP地址,同一個URL會被解釋成不同的IP地址,這便是DNS負載均衡,它是一種粗粒度的負載均衡,它只用URL前半部分,因為DNS負載均衡一般採用就近原則,所以通常能降低時延,但DNS有cache,所以也會更新不及時的問題。
硬體負載均衡,通過布置特殊的負載均衡設備到機房做負載均衡,比如F5,這種設備貴,性能高,可以支撐每秒百萬並發,還能做一些安全防護,比如防火牆。
軟體負載均衡,根據工作在ISO 7層網路模型的層次,可分為四層負載均衡(比如章文嵩博士的LVS)和七層負載均衡(NGINX),軟體負載均衡配置靈活,擴展性強,阿某雲的SLB作為服務對外售賣,Nginx可以對URL的後半部做解釋承擔API網關的職責。
所以,完整的負載均衡鏈路是 client <-> DNS負載均衡 -> F5 -> LVS/SLB -> NGINX
不管選擇哪種LB策略,或者組合LB策略,邏輯上,我們都可以視為負載均衡層,通過添加負載均衡層,我們將負載均勻分散到了後面的服務集群,具備基礎的高並發能力,但這只是萬里長征第一步。
資料庫層面:分庫分表+讀寫分離
前面通過負載均衡解決了無狀態服務的水平擴展問題,但我們的系統不全是無狀態的,後面通常還有有狀態的資料庫,所以解決了前面的問題,存儲有可能成為系統的瓶頸,我們需要對有狀態存儲做分片路由。
資料庫的單機QPS一般不高,也就幾千,顯然滿足不了高並發的要求。
所以,我們需要做分庫分表 + 讀寫分離。
就是把一個庫分成多個庫,部署在多個資料庫服務上,主庫承載寫請求,從庫承載讀請求。從庫可以掛載多個,因為很多場景寫的請求遠少於讀的請求,這樣就把對單個庫的壓力降下來了。
如果寫的請求上升就繼續分庫分表,如果讀的請求上升就掛更多的從庫,但資料庫天生不是很適合高並發,而且資料庫對機器配置的要求一般很高,導致單位服務成本高,所以,這樣加機器抗壓力成本太高,還得另外想招。
讀多寫少:緩存
緩存的理論依據是局部性原理。
一般系統的寫入請求遠少於讀請求,針對寫少讀多的場景,很適合引入緩存集群。
在寫資料庫的時候同時寫一份數據到緩存集群里,然後用緩存集群來承載大部分的讀請求,因為緩存集群很容易做到高性能,所以,這樣的話,通過緩存集群,就可以用更少的機器資源承載更高的並發。
緩存的命中率一般能做到很高,而且速度很快,處理能力也強(單機很容易做到幾萬並發),是理想的解決方案。
CDN本質上就是緩存,被用戶大量訪問的靜態資源緩存在CDN中是目前的通用做法。
緩存也有很多需要謹慎處理的問題:
一致性問題:(a)更新db成功+更新cache失敗 -> 不一致 (b)更新db失敗+更新cache成功 -> 不一致 ©更新db成功+淘汰緩存失敗 -> 不一致
緩存穿透:查詢一定不存在的數據,會穿透緩存直接壓到資料庫,從而導致緩存失去作用,如果有人利用這個漏洞,大量查詢一定不存在的數據,會對資料庫造成壓力,甚至打掛資料庫。解決方案:布隆過濾器 或者 簡單的方案,查詢不存在的key,也把空結果寫入緩存(設置較短的過期淘汰時間),從而降低命失
緩存雪崩:如果大量緩存在一個時刻同時失效,則請求會轉到DB,則對DB形成壓迫,導致雪崩。簡單的解決方案是為緩存失效時間添加隨機值,降低同一時間點失效淘汰緩存數,避免集體失效事件發生
但緩存是針對讀,如果寫的壓力很大,怎麼辦?
高寫入:消息中間件
同理,通過跟主庫加機器,耗費的機器資源是很大的,這個就是資料庫系統的特點所決定的。
相同的資源下,資料庫系統太重太復雜,所以並發承載能力就在幾千/s的量級,所以此時你需要引入別的一些技術。
比如說消息中間件技術,也就是MQ集群,它是非常好的做寫請求非同步化處理,實現削峰填谷的效果。
消息隊列能做解耦,在只需要最終一致性的場景下,很適合用來配合做流控。
假如說,每秒是1萬次寫請求,其中比如5千次請求是必須請求過來立馬寫入資料庫中的,但是另外5千次寫請求是可以允許非同步化等待個幾十秒,甚至幾分鍾後才落入資料庫內的。
那麼此時完全可以引入消息中間件集群,把允許非同步化的每秒5千次請求寫入MQ,然後基於MQ做一個削峰填谷。比如就以平穩的1000/s的速度消費出來然後落入資料庫中即可,此時就會大幅度降低資料庫的寫入壓力。
業界有很多著名的消息中間件,比如ZeroMQ,rabbitMQ,kafka等。
消息隊列本身也跟緩存系統一樣,可以用很少的資源支撐很高的並發請求,用它來支撐部分允許非同步化的高並發寫入是很合適的,比使用資料庫直接支撐那部分高並發請求要減少很多的機器使用量。
避免擠兌:流控
再強大的系統,也怕流量短事件內集中爆發,就像銀行怕擠兌一樣,所以,高並發另一個必不可少的模塊就是流控。
流控的關鍵是流控演算法,有4種常見的流控演算法。
計數器演算法(固定窗口):計數器演算法是使用計數器在周期內累加訪問次數,當達到設定的限流值時,觸發限流策略,下一個周期開始時,進行清零,重新計數,實現簡單。計數器演算法方式限流對於周期比較長的限流,存在很大的弊端,有嚴重的臨界問題。
滑動窗口演算法:將時間周期分為N個小周期,分別記錄每個小周期內訪問次數,並且根據時間滑動刪除過期的小周期,當滑動窗口的格子劃分的越多,那麼滑動窗口的滾動就越平滑,限流的統計就會越精確。此演算法可以很好的解決固定窗口演算法的臨界問題。
漏桶演算法:訪問請求到達時直接放入漏桶,如當前容量已達到上限(限流值),則進行丟棄(觸發限流策略)。漏桶以固定的速率進行釋放訪問請求(即請求通過),直到漏桶為空。分布式環境下實施難度高。
令牌桶演算法:程序以r(r=時間周期/限流值)的速度向令牌桶中增加令牌,直到令牌桶滿,請求到達時向令牌桶請求令牌,如獲取到令牌則通過請求,否則觸發限流策略。分布式環境下實施難度高。
4、高並發的實踐經驗
接入-邏輯-存儲是經典的互聯網後端分層,但隨著業務規模的提高,邏輯層的復雜度也上升了,所以,針對邏輯層的架構設計也出現很多新的技術和思路,常見的做法包括系統拆分,微服務。
除此之外,也有很多業界的優秀實踐,包括某信伺服器通過協程(無侵入,已開源libco)改造,極大的提高了系統的並發度和穩定性,另外,緩存預熱,預計算,批量讀寫(減少IO),池技術等也廣泛應用在實踐中,有效的提升了系統並發能力。
為了提升並發能力,邏輯後端對請求的處理,一般會用到生產者-消費者多線程模型,即I/O線程負責網路IO,協議編解碼,網路位元組流被解碼後產生的協議對象,會被包裝成task投入到task queue,然後worker線程會從該隊列取出task執行,有些系統會用多進程而非多線程,通過共享存儲,維護2個方向的shm queue,一個input q,一個output q,為了提高並發度,有時候會引入協程,協程是用戶線程態的多執行流,它的切換成本更低,通常有更好的調度效率。
另外,構建漏斗型業務或者系統,從客戶端請求到接入層,到邏輯層,到DB層,層層遞減,過濾掉請求,Fail Fast(盡早發現盡早過濾),嘴大屁眼小,哈哈。
漏斗型系統不僅僅是一個技術模型,它也可以是一個產品思維,配合產品的用戶分流,邏輯分離,可以構建全方位的立體模型。
5、小結
莫讓浮雲遮望眼,除去繁華識真顏。我們不能掌握了大方案,吹完了牛皮,而忽視了編程最本質的東西,掌握最基本最核心的編程能力,比如數據架構和演算法,設計,慣用法,培養技術的審美,也是很重要的,既要致高遠,又要盡精微。
㈡ 文件的擴展名一共有多少種
#01 及更高的號 為計算機演示而掃描的一系列電影的圖片文件編號方法
$$$ OS/2用來跟蹤檔案文件
@@@ 用於安裝過程中的屏幕文件和用於Microsoft Codeview for C這樣的應用程序的指導文件 。
000-999 用於為老版本(或備份)文件編號(比如:被安裝程序改變的CONFIG.SYS文件);又可用於為小范圍的PC應用程序的多個用戶相關數據文件編號
12M Lotus 1-2-3 97 SmartMaster文件
123 Lotus 1-2-3 97文件
2D VersaCAD的2維繪畫文件
2GR 在Windows之下的VGA圖形驅動程序/配置文件
3GR 在Windows之下的VGA圖形驅動程序/配置文件
3D VersaCAD的3維繪畫文件
3DM 3D NURBS建模器,Rhino
3DS 3D Studio(DOS下)格式文件
386 在386或更高級處理器上使用的文件
4GE Informix 4GL編譯後代碼
4GL Informix 4GL源代碼
669 Composer 669;UNIX Composer音樂模型文件;669磁軌模塊
A 對象代碼庫文件
AAM Authorware shocked文件
AAS Authorware shocked包
ABF Adobe二進制屏幕字體
ABK CorelDRAW自動備份文件
ABS 該類文件有時用於指示一個摘要(就像在一篇有關科學方面的文章的一個摘要或概要,取自abstract)
ACE Ace壓縮檔案格式
ACL CorelDRAW 6鍵盤快捷鍵文件
ACM Windows系統目錄文件
ACP Microsoft office助手預覽文件
ACR 美國放射醫學大學文件格式
ACT Microsoft office助手文件
ACV OS/2的驅動程序,用於壓縮或解壓縮音頻數據
AD After Dark屏幕保護程序
ADA Ada源文件(非-GNAT)
ADB Ada源文件主體(GNAT);HP100LX組織者的約定資料庫
ADD OS/2用於引導過程的適配器驅動程序
ADF Amiga磁碟文件
ADI AutoCAD設備無關二進制繪圖儀格式
ADM After Dark多模塊屏幕保護;Windows NT策略模板
ADP FaxWork用於傳真數據機的交互安裝文件;Astound Dynamite文件
ADR After Dark隨機屏幕保護;Smart Address的地址簿
ADS Ada源文件說明書(GNAT)
AFM Adobe的字體尺度
AF2 ABC的FlowChat文件
AF3 ABC的FlowChat文件
AI Adobe Illustrator格式圖形
AIF 音頻互交換文件,Silicon Graphic and Macintosh應用程序的聲音格式
AIFF 音頻互交換文件,Silicon Graphic and Macintosh應用程序的聲音格式
AIFC 壓縮AIF
AIM AOL即時信息傳送
AIS ACDSee圖形序列文件;Velvet Studio設備文件
AKW RoboHELP的幫助工程中所有A-關鍵詞
ALAW 歐洲電話音頻格式
ALB JASC Image Commander相冊
ALL 藝術與書信庫
AMS Velvet Studio音樂模塊(MOD)文件;Extreme的Tracker模塊文件
ANC Canon Computer的調色板文件,包含一系列可選的顏色板
ANI Windows系統中的動畫游標
ANS ANSI文本文件
ANT SimAnt For Windows中保存的游戲文件
API Adobe Acrobat使用的應用程序設計介面文件
APR Lotus Approach 97文件
APS Microsoft Visual C++文件
ARC LH ARC的壓縮檔案文件
ARI Aristotle聲音文件
ARJ Robert Jung ARJ壓縮包文件
ART Xara Studio繪畫文件;Canon Crayola美術文件;Clip Art文件格式;另一種光線跟蹤格式;AOL使用的用Johnson—Grace壓縮演算法壓縮的標記文件
ASA Microsoft Visual InterDev文件
ASC ASCⅡ文本文件;PGP演算法加密文件
ASD Microsoft Word的自動保存文件;Microsoft高級流媒體格式(microsoft advanced streaming format,ASF)的描述文件;可用NSREX打開 Velvet Studio例子文件
ASE Velvet Studio采樣文件
ASF Microsoft高級流媒體格式文件
ASM 匯編語言源文件,Pro/E裝配文件
ASO Astound Dynamite對象文件
ASP 動態網頁文件;ProComm Plus安裝與連接腳本文件;Astound介紹文件
AST Astound多媒體文件;ClarisWorks「助手」文件
ASV DataCAD自動保?***?
ASX Cheyenne備份腳本文件;Microsoft高級流媒體重定向器文件,視頻文件
ATT AT Group 4點陣圖文件
ATW 來自個人軟體的Any Time Deluxe For Windows個人信息管理員文件
AU Sun/NeXT/DEC/UNIX聲音文件;音頻U-Law(讀作「mu-law」)文件格式
AVB Computer Associates Inoculan反病毒軟體的病毒感染後文件
AVI Microsoft Audio Video Interleave電影格式
AVR Audio Visual Research文件格式
AVS 應用程序可視化格式
AWD FaxVien文檔
AWR Telsis數字儲存音頻文件擴展名格式
Axx ARJ壓縮文件的分包序號文件,用於將一個大文件壓至幾個小的壓縮包中(xx取01-99的數字)
A3L Authorware 3.x庫文件
A4L Authorware 4.x庫文件
A5L Authorware 5.x庫文件
A3M Authorware Macintosh未打包文件
A4M Authorware Macintosh未打包文件
A4P Authorware無運行時間的打包文件
A3W 未打包的Authorware Windows文件
A4W 未打包的Authorware Windows文件
A5W 未打包的Authorware Windows文件
BAK 備份文件
BAS BASIC源文件
BAT 批處理文件
BDF West Point Bridger Designer文件
BFC Windows 95 Briefcase文檔
BG Backgammon For Windows下的游戲文件
BGL Microsoft Flight Simulator(微軟飛行模擬器)的視景文件
BI 二進制文件
BIF Group Wise的初始化文件
BIFF XLIFE 3D格式文件
BIN 二進制文件
BK 有時用於********版本
BK$ 有時用於********版本
BKS IBM BookManager Read書架文件
BMK 書簽文件
BMP Windows或OS/2點陣圖文件
BMI Apogee BioMenace數據文件
BOOK Adobe FrameMaker Book文件
BOX Lotus Notes的郵箱文件
BPL Borlard Delph 4打包庫
BQY BrioQuery文件
BRX 用於查看多媒體對象目錄的文件
BSC MS Developer Studio瀏覽器信息文件
BSP Quake圖形文件
BS1 Apogee Blake Stone數據文件
BS_ Microsoft Bookshelf Find菜單外殼擴展名
BTM Norton 應用程序使用的批處理文件
BUD Quicken的備份磁碟
BUN CakeWalk 聲音捆綁文件(一種MIDI程序)
BW SGI黑白圖像文件
BWV 商業波形文件
BYU BYU的電影文件格式
B4 Helix Nuts and Bolts文件
C C代碼文件
C0l 台風波形文件
CAB Microsoft壓縮檔案文件
CAD Softdek的Drafix CAD文件
CAL CALS壓縮點陣圖;日歷計劃表數據
CAM Casio照相機格式
CAP 壓縮音樂文件格式
CAS 逗號分開的ASCⅡ文件
CAT Quicken使用 的IntellCharge分類文件
CB Microsoft干凈引導文件
CBI 二進制卷格式文件(用於IBM大型機系統)
CC Visual dBASE用戶自定義類文件
CCA cc:郵件文件
CCB Visual Basic動態按鈕配置文件
CCF 多媒體查看器配置文件,用於OS/2
CCH Corel圖表文件
CCM Lotus cc:郵箱(例如「INBOX.CCM」)
CCO CyberChat數據文件
CCT Macromedia Director Shockwave投影
CDA CD音頻軌道
CDF Microsoft頻道定義格式文件
CDI Philip的高密盤交互格式
CDM Visual dBASE自定義數據模塊文件
CDR CorelDRAW繪圖文件;原始音頻CD數據文件
CDT CorelDRAW模板
CDX CorelDRAW壓縮繪圖文件;Microsoft Visual FoxPro索引文件
CEL CIMFast事件語言文件
CER 證書文件(MIME x-x509-ca-cert)
CFB Compton的多媒文件
CFG 配置文件
CFM CotdFusion模板文件;Visual dBASE Windows用戶定製表單
CGI 公共網關介面腳本文件
CGM 計算機圖形元文件
CH OS/2配置文件
CHK 由Windows磁碟碎片整理器或磁碟掃描保存的文件碎片
CHM 編譯過的HTML文件
CHR 字元集(字體文件)
CHP Ventura Publisher章節文件
CHT ChartViem文件;Harvard Graphics矢量文件
CIF Adaptec CD 創建器 CD映像文件
CIL Clip Gallery下載包
CIM SimCity 2000文件
CIN OS/2改變控制文件用於跟蹤INI文件中的變化
CK1 iD/Apogee Commander Keen 1數據文件
CK2 iD/Apogee Commander Keen 2數據文件
CK3 iD/Apogee Commander Keen 3數據文件
CK4 iD/Apogee Commander Keen 4數據文件
CK5 iD/Apogee Commander Keen 5數據文件
CK6 iD/Apogee Commander Keen 6數據文件
CLASS java類文件
CLL Crick Software Clicker文件
CLP Windows 剪貼板文件
CLS Visual Basic類文件
CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
CMF Corel元文件
CMG Chessmaster保存的游戲文件
CMP JPEG點陣圖文件;地址文檔
CMV Corel Move動畫文件
CMX Corel Presentation Exchange圖像
CNF Telnet,Windows和其他其內格式會發生改變的應用程序使用的配置文件
CNM Windows應用程序菜單選項和安裝文件
CNQ Compuworks Design Shop文件
CNT Windows(或其他)系統用於幫助索引或其他目的內容文件
COB TrueSpace 2對象文件
COD Microsoft C編譯器產生的可顯示機器碼/匯編代碼文件,其中附有源C代碼作為注釋
COM 命令文件(程序)
CPD Corel Print Office文件(圖形)
CPD 傳真覆蓋文檔
CPE 傳真覆蓋文檔
CPI Microsoft MS-DOS代碼頁信息文件
CPL 控制面板擴展名,Corel顏色板
CPO Corel列印存儲文件
CPP C++代碼文件
CPR Corel提供說明書文件
CPT Corel 照片-繪畫圖像
CPX Corel Presentation Exchange壓縮圖形文件
CRD Windows Cardfile文件
CRP Corel 提供的運行時介紹文件;Visual dBASE自定義報表文件
CRT 認證文件
CSC Corel腳本文件
CSP PC Emcee On_Screen圖像
CSS 瀑布式表格文件
CST Macromedia Director Cast文件
CSV 逗號分隔的值文件
CT Scitex CT點陣圖文件;Paint Shop Pro Grapic編輯器文件
CTL 通常用於表示一個包含控制項信息的文件;FaxWork用它來保持有關每個傳真收到或發出的信息
CUE Microsoft提示牌數據文件
CUR Windows游標文件
CUT Dr Halo點陣圖文件
CV Corel版本的檔案文件;Microsoft CodeView信息屏幕文件
CWK ClarisWorks數據文件.
CWS ClarisWorks模塊
CXT Macromedia Director受保護的(不可編輯的)投影文件
CXX C++源代碼文件
DAT 數據文件;WrodPerfect合並數據文件;用於一些MPEG格式的文件
DB Borland的Paradox 7表
DBC Microsoft Visual FoxPro資料庫容器文件
DBF dBASE文件,一種由Ashton-Tate創建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和類似資料庫或與資料庫有關產品識別;可用數據文件(能被Excel 97打開);Oracle 8.1.x表格空間文件
DBX DataBearn圖像;Microsoft Visual FoxPro表格文件
DCM DCM模塊格式文件
DCR 沖擊波文件
DCS 桌面顏色分隔文件
DCT Microsoft Visual FoxPro資料庫容器
DCU Delphi編譯單元文件
DCX Microsoft Visual FoxPro資料庫容器;基於PCX的傳真圖像;宏
DC5 DataCAD繪圖文件
DDF Btrieve或Xtrieve數據定義文件,它包含用於描述Btrieve或Xtrieve文件的元數據
DDIF Digital Equipment或 Compaq格式,用於保存他們圖像與字處理文檔
DEF SmartWareⅡ數據文件;C++模塊定義文件
DEFI Oracle 7 卸載腳本文件
DEM 用於表示數字高度模型的USGS基準的文件
DER 認證文件
DEWF Macintosh Sound Cap/Sound Edit錄音設備格式
DGN Macintosh 95 CAD繪圖文件
DIB 設備無關點陣圖
DIC 目錄
DIF 可進行數據互換的電子表格
DIG DigiLink格式;Sound DesignerⅠ音頻文件
DIR MacromediaDirector文件
DIZ 描述文件
DLG C++對話框腳本文件
DLL 動態鏈接庫
DLS 可下載聲音文件
DMD Visual dBASE數據模塊文件
DMF X-Trakker音樂模塊(MOD)文件
DOC FrameMaker或FrameBuilder文檔;Word Star文檔、Word Perfect文檔、Microsoft Word文檔;DisplayWrite文檔
DOT Microsoft Word文檔模板
DPL Borland Delph3壓縮庫
DPR Borland Delphi工程頭文件
DRAW Acorn的基於對象的矢量圖像文件
DRV 驅動程序
DRW Micrografx Designer/Draw;Pro/E繪畫文件
DSF Micrografx Designer VFX文件
DSG DOOM保存的文件
DSM Dynamic Studio音樂模塊(MOD)文件
DSP Microsoft Developer Studio工程文件
DSQ Corel QUERY(查詢)文件
DST 刺綉機圖形文件
DSW Microsoft Developer Studio工作區文件
DTA Word Bank(世界銀行)的STARS數據文件
DTD SGML文檔類型定義(DTD)文件
DTED 地面高度數字數據(圖形的數據格式)文件
DTF Symantec Q&A相關的資料庫數據文件
DTM DigiTrakker模塊文件
DUN Microsoft拔號網路導出文件
DV 數字視頻文件(MIME)
DWD Diamo
DWD DiamondWare數字化文件
DWG AutoCAD工程圖文件;AutoCAD或Generic CADD老版本的繪圖格式
DXF 可進行互交換的繪圖文件格式,二進制的DWG格式的文本表示;數據交換文件
DXR Macromedia Director受保護(不可編輯)電影文件
D64 Commodore的64位模擬磁碟圖像文件
EDA Ensoniq ASR磁碟映像
EDD 元素定義文檔(FrameMaker+SGML文檔)
EDE Ensoniq EPS磁碟映像
EDK Ensoniq KT磁碟映像
EDQ Ensoniq SQ1/SQ2/Ks32磁碟映像
EDS Ensoniq SQ80磁碟映像
EDV Ensoniq VFX-SD磁碟映像
EFA Ensoniq ASR文件
EFE Ensoniq EPS文件
EFK Ensoniq KT文件
EFQ Ensoniq SQ1/SQ2/Ks32文件
EFS Ensoniq SQ80文件
EFV Ensoniq VFX-SD文件
EMD ABT擴展模塊
EMF Windows增強元文件
EML Microsoft Outlook Express郵件消息(MIME RTC822)文件
ENC 重演文件
ENFF 中性文件格式擴展名
EPHTML Perl解釋增強HTML文件
EPS 壓縮的PostScript圖像
EPSF 壓縮的PostScript文件
ERI ERWin文件
ERR 當RobooHELP幫助編譯器企圖編譯一個幫助系統源文件時用來存儲錯誤消息的文件
EPX ERWin文件
ESPS ESPS音頻文件
EUI Ensoniq ESP家族的壓縮磁碟映像
EVY 特使文檔
EWL Microsoft Encarta文檔
EXC Microsoft Word禁止字字典
EXE 可執行文件(程序)
F FORTRAN文件
F2R Farandoyle線性模塊格式
F3R Farandoyle分塊線性模塊格式
F77 FORTRAN文件
F90 FORTRAN文件
FAR Fradole Composer音樂模塊(MOD)文件
FAV Microsoft Outlook導航條
FAX 傳真類型圖像
FBK Navison 金融備份
FCD 虛擬CD-ROM
FDB Navison 金融資料庫
FDF Adobe Acrobat表單文檔文件
FEM CADRE有限元素網路文件
FFA Microsoft快速查找文件
FFL Microsoft快速查找文件
FFO Microsoft快速查找文件
FFK Microsoft快速查找文件
FFF GUS PnP銀行文件格式
FFT 最終格式文本(IBM的DCA一部分)
FH3 Als Freehand 3繪圖文件
FIF Fractal圖像文件
FIG REND386/AVRIL使用的文件格式
FITS CCD照相機圖像;靈活圖像傳輸系統
FLA Macromedia Flash電影
FLC Autodesk FLIC動畫文件
FLF Corel Paradox產生的格式:Navison Financials許可文件;OS/2驅動程序文件
PLI Autodesk FLIC動畫
FLT StarTrekker音樂模塊(MOD)文件;MultiGen Inc的Open Flight使用的文件格式;Corel過濾器文件
FM Adobe FrameMaker文檔
FMB Oracle4.0版或以後版本表單的二進制源代碼文件
FML 文件鏡象列表(GetRight)
FMT Oracle 4.0版或以後版本表單的文本格式;Microsoft Schele+ 列印文件
FMX Oracle 4.0版或以後版本可執行表單
FND Microsoft Explorer保存的搜索文件(Find applet)
FNG 字體組文件(字體導航器,Font Navigator)
FNK Funk Tracker模塊格式
FOG Fontographer模塊字體
FON 系統字體
FOR FORTRAN文件
FOT 字體相關文件
FP FileMaker Pro文件
FP1 Flying Pigs for Windows數據文件
FP3 FileMaker Pro文件
FPT FileMaker Pro文件;Microsoft Fox Pro備注字體文件
FPX FlashPix點陣圖
FRM 表單;Frame Maker或Frame Builder文檔;Oracle可執行表(3.0版或早期版本);Visual Basic表單;WordPerfect Merge表單;DataCAD標志報表文件
FRT Microsoft FoxPro報表文件
FRX Visual Basic表單文本;Microsoft FoxPro報表文件
FSF fPrint Audit Tool文件格式
FSL Borland的Paradox 7表單;Corel Paradox保存的表單
FSM Parandoyle示例格式
FT Lotus Notes全文本索引
FTG 全文本搜索組文件,由Windows幫助系統查找時產生——可以刪除,並在需要時重建起來
FTS 全文本搜索引文件,由Windows幫助系統查找時產生
FW2 Framework Ⅱ文件
FW3 Framework Ⅲ文件
FW4 Framework Ⅳ文件
FXP 經Microsoft FoxPro編譯的源文件
FZB Casio FZ-1銀行轉儲
FZF Casio FZ-1完全轉儲
FZV Casio FZ-1聲音轉儲 G721 Raw CCITT G.721 $bit ADPCM格式數據
G723 Raw CCITT G.723 3或5bit ADPCM格式數據
GAL Corel多媒體管理器相集
GCD Generic CADD繪畫文件(後續版本)
GCP Ground Control Point(地面控制點)文件,用於遠景數據形成圖像過程,經常用於生成圖工程—CHIPS(copenhagen image processing system)使用這些文件
GDB InterBase資料庫文件
GDM 鈴聲、口哨聲和聲音板模塊格式
GED GEDCOM 系譜數據文件,用於記錄和交換系譜數據的流行格式;圖形環境文檔繪畫
GEM GEM元文件
GEN Ventura產生的文本文件
GetRight GetRight未完成的下載文件
GFC Patton&Patton FlowCharting 4 flowchart文件
GFI Genigraphics圖形鏈接表示文件
GFX Genigraphics圖形鏈接表示文件
GHO Norton 克隆磁碟映像
GID Windows 95全局索引文件(包括幫助狀態)
GIF CompuServe點陣圖文件
GIM Genigraphics圖形鏈接介紹文件
GIX Genigraphics圖形鏈接介紹文件
GKH Ensoniq EPS家簇磁碟映像文件
GKS Gravis Grip Key文檔
GL 動畫格式
GNA Genigraphics圖形鏈接介紹文件
GNT 生成代碼,Micro Focus屬性格式里的可執行代碼
GNX Genigraphics圖形鏈接介紹文件
GRA Microsoft Graph文件
GRD 用於遠程視景數據產生地圖過程的格式文件,通常應用於形成地圖工程—CHIPS(copenhagen image processing system)使用這些文件
GRF Grapher(Golden Software公司)圖形文件
GRP 程序管理組
GSM Raw GSM 6.10音頻流;Raw「byte aligned(比特對齊的)」 GSM 6.10音頻流;US Robotics語音數據機
GTK Graoumftracker(老)音樂模塊(MOD)文件
GT2 Graoumftracker(新)音樂模塊(MOD)文件
GWX Cenigraphis圖形鏈接介紹文件
GWZ Cenigraphis圖形鏈接介紹文件
GZ UNIX gzip壓縮文件
H C程序頭文件
HCM IBM HCM配置文件
HCOM 聲音工具HCOM格式
HCR IBM HCD/HCM產品配置文件
HDF 高級計算機應用程序本地中心(NCSA) geospatial Hierarchial數據格式文件
HED HighEdit文檔
HEL Microsoft Hellbender格式保存的游戲文件
HEX Macintosh BinHex2.0文件
HGL HP圖形語言繪圖文件
HH 映射文件,包括一些話題ID和在幫助文件系統中話題的映射數字—允許運行中應用程序發送給用戶合適的上下文幫助話題
HLP 幫助文件;Date CAD Windows幫助文件
HOG Lucas Arts的Dark Forces WAD文件
HPJ Visual Basic幫助工程
HPP C++程序頭文件
HQX Macintosh BinHex 4.0文件
HST 歷史文件
HT HyperTerminal(超級終端)
HTM 超文本文檔
HTML 超文本文檔
HTT Microsoft超文本模板
HTX 擴展HTML模板
HXM Descent2 HAM文件擴展
ICA Citrix文件
ICB Targa點陣圖文件
ICC Kodak列印機格式文件
ICL 圖標庫文件
ICM 圖形顏色匹配配置文件
ICO Windows圖標
IDB MSDev中間層文件
IDD MIDI設備定義
IDF MIDI設備定義(Windows 95需要的文件)
IDQ Internet數據查詢文件
IDX Microsoft FoxPro相關資料庫索引文件;Symantec Q&A相關資料庫索引文件;Microsoft Outlook Express文件
IFF 交換格式文件;Amiga ILBM
IGES 初始圖形交換說明文件
IGF 插入系統元文件
IIF QuickBooks for Windows交換文件
ILBM 點陣圖圖形文件
IMA WinImage磁碟映像文件
IMG GEM映像
IMZ WinImage壓縮磁碟映像文件
INC 匯編語言或動態伺服器包含文件
INF 信息文件
INI 初始化文件;MWave DSP Synth的「nwsynth.ini」 GMS安裝;Cravis Ultrasound bank安裝
INP Oracle 3.0版或早期版本的表單源代碼
INRS INRS遠程通信聲頻
INS InstallShield安裝腳本;X-Internet簽字文件;Ensoniq EPS字簇設備;Cell/ⅡMAC/PC抽樣設備
INT 中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼
IOF Findit文檔
IQY Microsoft Internet查詢文件
ISO 根據ISD 9660有關CD-ROM文件系統標准列出CD-ROM上的文件
ISP X-Internet簽字文件
IST 數字跟蹤設備文件
ISU InstallShield卸裝腳本
IT 脈沖跟蹤系統音樂模塊(MOD)文件
ITI 脈沖跟蹤系統設備
ITS 脈沖跟蹤系統抽樣,Internet文檔位置
IV Open Inventor中使用的文件格式
IVD 超過20/20微觀數據維數或變數等級文件
IVP 超過20/20的用戶子集配置文件
IVT 超過20/20表或集合數據文件
IVX 超過20/20微數據目錄文件
IW Idlewild屏幕保護程序
IWC Install Watch文檔
J62 Ricoh照相機格式
JAR Java檔案文件(一種用於applet和相關文件的壓縮文件)
JAVA Java源文件
JBF Paint Shop Pro圖像瀏覽文件
JFF JPEG文件
JFIF JPEG文件
JIF JPEG文件
JMP SAS的JMPDiscovery表格統計文件
JN1 Epic MegaGames的Jill of the Jungle數據文件
JPE JPEG圖形文件
JPEG JPEG圖形文件
JPG JPEG圖形文件
JS javascript源文件
JSP HTML網頁,其中包含有對一個Java servlet的參考
JTF JPEG點陣圖文件
K25 Kurzweil 2500抽樣文件
KAR 卡拉OK MIDI文件(文本+MIDI)
KDC Kodak光增強器
KEY DataCAD圖標工具條文件
KFX KoFak Group 4圖像文件
KIZ Kodak數字明信片文件
KKW RoboHELP幫助工程索引設計器中與主題無關的K開頭的所有關鍵字
KMP Korg Trinity KeyMap文件
KQP Konica照相機本地文件
KR1 Kurzweil 2000抽樣(多軟碟機)文件
KRZ Kurzweil 2000抽樣文件
KSF Korg Trinity抽樣文件
KYE Kye游戲數據
LAB Visual dBASE標簽文件
LBM Deluxe Paint點陣圖文件
LBT Microsoft FoxPro標簽文件
LBX Microsoft FoxPro標簽文件
LDB Microsoft Access加鎖文件
LDL Corel Paradox分發庫
LEG Legacy文檔
LES Logitech娛樂系統游戲配置文件(與REC文件一樣)
LFT 3D Studio(DOS)放樣文件
LGO Paintbrush(Microsoft畫圖應用程序)的徽標文件
LHA LZH更換文件後綴
LIB 庫文件
LIN DataCAD線型文件
LIS 結構化查詢報告(SQR)程序產生的輸出文件
LLX Laplink交換代理
LNK Windows快捷方式文件
LOG 日誌文件
LPD Helix Nut和Bolt文件
LRC Intel可視電話文件
LSL Corel Paradox保存的庫文件
LSP AutoLISP、CommonLISP和其他LISP語言文件
LST 列表文件
LU ThoughtWing庫單元文件
LVL Parallax Software的 Miner Descent/D2 Level擴展
LWLO Lightwave分層對象文件
LWOB Lightwave對象文件
LWP Lotus WordPro 96/97文件
LWSC Lightwave視景文件
LYR DataCAD層文件
LZH ARC壓縮檔案
LZS Skyroads數據文件
M1V MPEG相關文件(MIME「mpeg」類型)
M3D Corel Motion 3D動畫文件
M3U MPEG URL(MIME聲音文件)
MAC MacPaint圖像文件
MAD Microsoft Access模塊文件
MAF Microsoft Access表單文件
MAG 在一些日本文件中發現的圖形文件格式
MAGIC 魔力郵件監視器配置文件
MAK Visual Basil或Microsoft Visual C++工程文件
MAM Microsoft Access宏
MAN UNIX手冊頁輸出
MAP 映射文件;Duke Nukem 3D WAD游戲文件
MAQ Microsoft Access查詢文件
MAR Microsoft Access報表文件
MAS Lotus Freelance Graphics Smart Master文件
MAT Microsoft Access表;3D Studio MAX材料庫
MAUD MAUD抽樣格式
MAX Kinetx的3DStudio MAX文件;該格式用於一個3D場景文件;Paperport文件;OrCAD設計文件
MAZ Hover迷路數據;Division的dVS/dVISE使用的文件格式
MB1 Apogee Monster Bash數據文件
MBOX Berkeley Unix郵箱格式
MBX Microsoft Outlook保存email格式;Eudora郵箱
MCC Dailerl0呼叫卡
MCP Metrowerks CodeWarrior工程文件
MCR DataCAD鍵盤宏文件
MCW Microsoft Word的Macintosh文檔
MDA Microsoft Access內抽入器;Microsoft Access 2.0版及其後續版本的工作組事件
MDB Microsoft Access資料庫
MDE Microsoft Access MDE文件
MDL 數字跟蹤器音樂模塊(MOD)文件;Quake模 塊文件
MDN Microsoft Access空資料庫模板
MDW Microsoft Access工作組文件
MDZ Microsoft Access向導模板文件
MED 音樂編輯器,OctaMED音樂模塊(MOD)文件
MER 電子表格/資料庫數據交換格式;FileMaker、Excel及其他軟體能識別
MET 表示管理器元文件
MFG Pro/ENGINEER製造文件
MGF 在材料與幾何學里的文件格式
MH
㈢ SEO是什麼意思
SEO是搜索引擎優化(Search Engine Optimization)的英文縮寫,中文譯為「搜索引擎優化」。在了解搜索引擎自然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中的關鍵詞自然排名,獲得更多流量,從而達成網站銷售及品牌建設的預期目標.
SEO是搜索引擎優化(茄租伏Search Engine Optimization)的英文縮寫,中文譯為「搜索引擎優化」。在了解搜索引擎自然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中的關鍵SEO是搜索引擎優化(Search Engine Optimization)的英文縮寫,中文譯為「搜索引擎優化」。在了解搜索引擎自然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中的關鍵詞自然排名,獲得更多流量,從而達成網站銷售及品牌建設的預期.
發展歷程
2000年,出現按點擊付費(Pay-per-click)的搜索引擎關鍵詞廣告模式。
2001年,部分分類目錄(中文)開始收費登錄,每個網站每年要交納數百元到數千元不等的費用。
2002年,國內陸陸續續有人涉足SEO這一領域。SEO
2003年,出現基於內容定位的搜索引擎廣告(Google AdSense)。
2004年,國內潛伏的SEO開始浮出水面,SEO隊伍逐步壯大。SEO市場處於混亂無序、違規操作、惡性競爭的狀態。大多數SEO採取個人作坊式經營,公司性運作規模小。SEO培訓市場誕生。
2006年,隨著網路市場競爭白熱化,企業對網路公司的所為和網路產品有了新的認識,企業開始理智對待網路營銷市場,隨著網路競價的盛行,企業也認識到了搜索引擎的重要性,同時也伴詞自然排名,獲得更多流量,從而達成網站銷售及品牌建設的預期.
發展歷程
2000年,出現按點擊付費(Pay-per-click)的搜索引擎關鍵詞廣告模式。
2001年,部分分類目錄(中文)開始收費登錄,每個網站每年要交納數百元到數千元不等的費用。
2002年,國內陸陸續續有人涉足SEO這一領域。SEO
2003年,出現基於內容定位的搜索引擎廣告(Google AdSense)。
2004年,國內潛伏的SEO開始浮出水面,SEO隊伍逐步壯大。SEO市場處於混亂無序、違規操作、惡性競爭的狀態。大多數SEO採取個人作坊式經營,公司性運作規模小。SEO培訓市場誕生。
2006年,隨著網路市場競爭白熱化,企業對網路公司的所為和網路產品有了新的認識,企業開始理智對待網路營銷市場,隨著網路競價的盛行,企業也認識到了搜索引擎的重要性,同時也伴隨著誕生了很多SEO服務公司。
2007年,隨著SEO信息的普及,網路公司技術的上升,易雅達網站公司推出了按效果付費的SEO服務項目,從網站建設,到關鍵詞定位,到搜索引擎優化全方位服務,整體SEM網路營銷方案的推出和實施。
2008年,隨著SEO服務公司的技術和理念逐漸成熟,部分公司推出了網站策劃服務,服務以效益型網站建設(更加註重網站用戶體驗)和網站用戶轉化率為目的,更加註重營銷成效。
2009年,SE0進入白熾化的發展階段,不論是個人、團隊還是公司或者培訓機構,都大力宣傳和使用SEO技術來運營網站,使網站的關鍵詞得到更快的排名和收錄。
2012年,SEO行業進入調整,原來的服務模式已經很難實現雙贏,很多公司縮小規模,一些公司開始尋求新的服務模式。
2012年2月顫攜15日,在網路搜索SEO相關詞彙時,「網路提示您:不要輕信SEO公司的說辭和案例,不正當的SEO可能會給您的站點造成風險。建議廣大站長對站點進行SEO之前,參考閱讀網路的官方網站優化指南。」此舉被認為是網路打擊SEO的一個重要舉措。
2012年3月8日,搜索和SEO相關的詞彙時,「網路提示您:SEO是一項非常重要的工作,請參考網路關於SEO的建議。」此舉被認為是網路迫於壓力做出的一種妥協,有可能是為了避免類似行業壟斷行為的規避,認可SEO的存在並變相壓制SEO發展。
2012年5月網路推出網路站長平台,站長平台發布《Web2.0反垃圾詳細攻略》和《知名站點SEO注意事項》,對站點的合理優化、遠離作弊提出了一些有價值的建議。
2012年6月網路更新反作弊策略,大面積網站被K,網路聲稱《針對低質量站點的措施已經生效》,後導致站長聯合發起大規模點擊網路競價事件!其中型神由於此事件直接受害且受害最大的便是醫療競價。
2012年10月23日網路反作弊演算法升級,打擊網站超鏈接形式作弊方式,和買賣鏈接行為。但由實際調查發現,此次升級造成真正參與作弊網站被K的現象微乎其微。
2012年11月-12月網路站長平台推出一系列站長工具(搜索關鍵詞、網路索引量、外鏈分析、網站改版等),第三方站長工具受到有力沖擊。
20 13年3月19日拒絕外鏈工具beta版全面開放使用。
2013年4月25日《談外鏈判斷》一文在站長社區發布,引起SEO行業的密切關注。
2013年5月17日下午網路網頁搜索反作弊團隊在網路站長平台發布公告稱:將於一星期後正式推出新的演算法「石榴演算法」。新演算法前期將重點整頓含有大量妨礙用戶正常瀏覽的惡劣廣告的頁面,尤其以彈出大量低質彈窗廣告、混淆頁面主體內容的垃圾廣告頁面為代表。
2013年7月1日網路綠蘿演算法2.0更新公告,加大過濾軟文外鏈的力度,加大對目標站點的懲罰力度,對承載發布軟文的站點進行適當的懲罰,降低其在搜索引擎中的評價,同時,針對網路新聞源站點將其清理出新聞源。
2013年7月19日網路網頁搜索反作弊團隊發表聲明打擊大量的高價收購二級域名或目錄的信息,絕大部分被用於作弊,對於此類出售二級域名二級目錄的問題,將進行嚴厲的懲罰,株連至整個站點,直接屏蔽並清理出網路新聞源。 13年2月19日網路推出綠蘿演算法打擊各種超鏈中介。
2013年4月25日《談外鏈判斷》一文在站長社區發布,引起SEO行業的密切關注。
2013年5月17日下午網路網頁搜索反作弊團隊在網路站長平台發布公告稱:將於一星期後正式推出新的演算法「石榴演算法」。新演算法前期將重點整頓含有大量妨礙用戶正常瀏覽的惡劣廣告的頁面,尤其以彈出大量低質彈窗廣告、混淆頁面主體內容的垃圾廣告頁面為代表。
2013年7月1日網路綠蘿演算法2.0更新公告,加大過濾軟文外鏈的力度,加大對目標站點的懲罰力度,對承載發布軟文的站點進行適當的懲罰,降低其在搜索引擎中的評價,同時,針對網路新聞源站點將其清理出新聞源。
2013年7月19日網路網頁搜索反作弊團隊發表聲明打擊大量的高價收購二級域名或目錄的信息,絕大部分被用於作弊,對於此類出售二級域名二級目錄的問題,將進行嚴厲的懲罰,株連至整個站點,直接屏蔽並清理出網路新聞源。