理解大型分布式網(wǎng)站你應(yīng)該知道這些概念

1. I/O優(yōu)化

增加緩存,減少磁盤的訪問(wèn)次數(shù)讳侨。

優(yōu)化磁盤的管理系統(tǒng),設(shè)計(jì)最優(yōu)的磁盤方式策略奏属,以及磁盤的尋址策略跨跨,這是在底層操作系統(tǒng)層面考慮的。

設(shè)計(jì)合理的磁盤存儲(chǔ)數(shù)據(jù)塊囱皿,以及訪問(wèn)這些數(shù)據(jù)庫(kù)的策略勇婴,這是在應(yīng)用層面考慮的。例如嘱腥,我們可以給存放的數(shù)據(jù)設(shè)計(jì)索引耕渴,通過(guò)尋址索引來(lái)加快和減少磁盤的訪問(wèn)量,還可以采用異步和非阻塞的方式加快磁盤的訪問(wèn)速度齿兔。

應(yīng)用合理的RAID策略提升磁盤I/O橱脸。

2. Web前端調(diào)優(yōu)

減少網(wǎng)絡(luò)交互的次數(shù)(多次請(qǐng)求合并)

減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量的大小(壓縮)

盡量減少編碼(盡量提前將字符轉(zhuǎn)化為字節(jié)础米,或者減少?gòu)淖址阶止?jié)的轉(zhuǎn)化過(guò)程。)

使用瀏覽器緩存

減少Cookie傳輸

合理布局頁(yè)面

使用頁(yè)面壓縮

延遲加載頁(yè)面

CSS在最上面慰技,JS在最下面

CDN

反向代理

頁(yè)面靜態(tài)化

異地部署

3.服務(wù)降級(jí)(自動(dòng)優(yōu)雅降級(jí))

拒絕服務(wù)和關(guān)閉服務(wù)

4.冪等性設(shè)計(jì)

有些服務(wù)天然具有冪等性椭盏,比如講用戶性別設(shè)置為男性,不管設(shè)置多少次吻商,結(jié)果都一樣掏颊。但是對(duì)轉(zhuǎn)賬交易等操作,問(wèn)題就會(huì)比較復(fù)雜艾帐,需要通過(guò)交易編號(hào)等信息進(jìn)行服務(wù)調(diào)用有效性校驗(yàn)乌叶,只有有效的操作才能繼續(xù)執(zhí)行。

(注:冪等性是系統(tǒng)的接口對(duì)外一種承諾(而不是實(shí)現(xiàn)), 承諾只要調(diào)用接口成功, 外部多次調(diào)用對(duì)系統(tǒng)的影響是一致的. 聲明為冪等的接口會(huì)認(rèn)為外部調(diào)用失敗是常態(tài), 并且失敗之后必然會(huì)有重試.)

5.失效轉(zhuǎn)移

若數(shù)據(jù)服務(wù)器集群中任何一臺(tái)服務(wù)器宕機(jī)柒爸,那么應(yīng)用程序針對(duì)這臺(tái)服務(wù)器的所有讀寫操作都需要重新路由到其他服務(wù)器准浴,保證數(shù)據(jù)訪問(wèn)不會(huì)失敗,這個(gè)過(guò)程叫失效轉(zhuǎn)移捎稚。

失效轉(zhuǎn)移包括:失效確認(rèn)(心跳檢測(cè)和應(yīng)用程序訪問(wèn)失敗報(bào)告)乐横、訪問(wèn)轉(zhuǎn)移、數(shù)據(jù)恢復(fù)今野。

失效轉(zhuǎn)移保證當(dāng)一個(gè)數(shù)據(jù)副本不可訪問(wèn)時(shí)葡公,可以快速切換訪問(wèn)數(shù)據(jù)的其他副本,保證系統(tǒng)可用条霜。

6.性能優(yōu)化

根據(jù)網(wǎng)站分層架構(gòu),性能優(yōu)化可分為:web前端性能優(yōu)化催什、應(yīng)用服務(wù)器性能優(yōu)化、存儲(chǔ)服務(wù)器性能優(yōu)化宰睡。

1. web前端性能優(yōu)化

瀏覽器訪問(wèn)優(yōu)化:減少http請(qǐng)求;使用瀏覽器緩存;啟用壓縮;css放在頁(yè)面最上面蒲凶、javaScript放在頁(yè)面最下面;減少Cookie傳輸

CDN加速

反向代理

2. 應(yīng)用服務(wù)器性能優(yōu)化

分布式緩存(Redis等)

異步操作(消息隊(duì)列)

使用集群(負(fù)載均衡)

代碼優(yōu)化

3. 存儲(chǔ)性能優(yōu)化

機(jī)械硬盤vs固態(tài)硬盤

B+樹(shù) vs LSM樹(shù)

RAID vs HDFS

7. 代碼優(yōu)化

多線程(Q:怎么確保線程安全?無(wú)鎖機(jī)制有哪些拆内?)

資源復(fù)用(單例模式旋圆,連接池,線程池)

數(shù)據(jù)結(jié)構(gòu)

垃圾回收

8. 負(fù)載均衡

HTTP重定向負(fù)載均衡

當(dāng)用戶發(fā)來(lái)請(qǐng)求的時(shí)候麸恍,Web服務(wù)器通過(guò)修改HTTP響應(yīng)頭中的Location標(biāo)記來(lái)返回一個(gè)新的url臂聋,然后瀏覽器再繼續(xù)請(qǐng)求這個(gè)新url,實(shí)際上就是頁(yè)面重定向或南。通過(guò)重定向孩等,來(lái)達(dá)到“負(fù)載均衡”的目標(biāo)。例如采够,我們?cè)谙螺dPHP源碼包的時(shí)候肄方,點(diǎn)擊下載鏈接時(shí),為了解決不同國(guó)家和地域下載速度的問(wèn)題蹬癌,它會(huì)返回一個(gè)離我們近的下載地址权她。重定向的HTTP返回碼是302虹茶。

優(yōu)點(diǎn):比較簡(jiǎn)單。

缺點(diǎn):瀏覽器需要兩次請(qǐng)求服務(wù)器才能完成一次訪問(wèn)隅要,性能較差蝴罪。重定向服務(wù)自身的處理能力有可能成為瓶頸,整個(gè)集群的伸縮性國(guó)模有限步清;使用HTTP302響應(yīng)碼重定向要门,有可能使搜索引擎判斷為SEO作弊,降低搜索排名廓啊。

DNS域名解析負(fù)載均衡

DNS(Domain Name System)負(fù)責(zé)域名解析的服務(wù)欢搜,域名url實(shí)際上是服務(wù)器的別名,實(shí)際映射是一個(gè)IP地址谴轮,解析過(guò)程炒瘟,就是DNS完成域名到IP的映射。而一個(gè)域名是可以配置成對(duì)應(yīng)多個(gè)IP的第步。因此疮装,DNS也就可以作為負(fù)載均衡服務(wù)。

事實(shí)上粘都,大型網(wǎng)站總是部分使用DNS域名解析斩个,利用域名解析作為第一級(jí)負(fù)載均衡手段,即域名解析得到的一組服務(wù)器并不是實(shí)際提供Web服務(wù)的物理服務(wù)器驯杜,而是同樣提供負(fù)載均衡服務(wù)的內(nèi)部服務(wù)器,這組內(nèi)部負(fù)載均衡服務(wù)器再進(jìn)行負(fù)載均衡做个,將請(qǐng)求分發(fā)到真是的Web服務(wù)器上鸽心。

優(yōu)點(diǎn):將負(fù)載均衡的工作轉(zhuǎn)交給DNS,省掉了網(wǎng)站管理維護(hù)負(fù)載均衡服務(wù)器的麻煩居暖,同時(shí)許多DNS還支持基于地理位置的域名解析顽频,即會(huì)將域名解析成舉例用戶地理最近的一個(gè)服務(wù)器地址,這樣可以加快用戶訪問(wèn)速度太闺,改善性能糯景。

缺點(diǎn):不能自由定義規(guī)則,而且變更被映射的IP或者機(jī)器故障時(shí)很麻煩省骂,還存在DNS生效延遲的問(wèn)題蟀淮。而且DNS負(fù)載均衡的控制權(quán)在域名服務(wù)商那里,網(wǎng)站無(wú)法對(duì)其做更多改善和更強(qiáng)大的管理钞澳。

反向代理負(fù)載均衡

反向代理服務(wù)可以緩存資源以改善網(wǎng)站性能怠惶。實(shí)際上,在部署位置上轧粟,反向代理服務(wù)器處于Web服務(wù)器前面(這樣才可能緩存Web相應(yīng)策治,加速訪問(wèn))脓魏,這個(gè)位置也正好是負(fù)載均衡服務(wù)器的位置,所以大多數(shù)反向代理服務(wù)器同時(shí)提供負(fù)載均衡的功能通惫,管理一組Web服務(wù)器茂翔,將請(qǐng)求根據(jù)負(fù)載均衡算法轉(zhuǎn)發(fā)到不同的Web服務(wù)器上。Web服務(wù)器處理完成的響應(yīng)也需要通過(guò)反向代理服務(wù)器返回給用戶履腋。由于web服務(wù)器不直接對(duì)外提供訪問(wèn)珊燎,因此Web服務(wù)器不需要使用外部ip地址,而反向代理服務(wù)器則需要配置雙網(wǎng)卡和內(nèi)部外部?jī)商譏P地址府树。

優(yōu)點(diǎn):和反向代理服務(wù)器功能集成在一起俐末,部署簡(jiǎn)單。

缺點(diǎn):反向代理服務(wù)器是所有請(qǐng)求和響應(yīng)的中轉(zhuǎn)站奄侠,其性能可能會(huì)成為瓶頸卓箫。

LVS-NAT:修改IP地址

LVS-TUN: 一個(gè)IP報(bào)文封裝在另一個(gè)IP報(bào)文的技術(shù)。

LVS-DR:將數(shù)據(jù)幀的MAC地址改為選出服務(wù)器的MAC地址垄潮,再將修改后的數(shù)據(jù)幀在與服務(wù)器組的局域網(wǎng)上發(fā)送烹卒。

9.緩存

緩存就是將數(shù)據(jù)存放在距離計(jì)算最近的位置以加快處理速度。緩存是改善軟件性能的第一手段弯洗,現(xiàn)在CPU越來(lái)越快的一個(gè)重要因素就是使用了更多的緩存旅急,在復(fù)雜的軟件設(shè)計(jì)中,緩存幾乎無(wú)處不在牡整。大型網(wǎng)站架構(gòu)設(shè)計(jì)在很多方面都使用了緩存設(shè)計(jì)藐吮。

CDN: 及內(nèi)容分發(fā)網(wǎng)絡(luò),部署在距離終端用戶最近的網(wǎng)絡(luò)服務(wù)商逃贝,用戶的網(wǎng)絡(luò)請(qǐng)求總是先到達(dá)他的網(wǎng)絡(luò)服務(wù)商哪里谣辞,在這里緩存網(wǎng)站的一些靜態(tài)資源(較少變化的數(shù)據(jù)),可以就近以最快速度返回給用戶沐扳,如視頻網(wǎng)站和門戶網(wǎng)站會(huì)將用戶訪問(wèn)量大的熱點(diǎn)內(nèi)容緩存在CDN中泥从。

反向代理:反向代理屬于網(wǎng)站前端架構(gòu)的一部分,部署在網(wǎng)站的前端沪摄,當(dāng)用戶請(qǐng)求到達(dá)網(wǎng)站的數(shù)據(jù)中心時(shí)躯嫉,最先訪問(wèn)到的就是反向代理服務(wù)器,這里緩存網(wǎng)站的靜態(tài)資源杨拐,無(wú)需將請(qǐng)求繼續(xù)轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器就能返回給用戶祈餐。

本地緩存:在應(yīng)用服務(wù)器本地緩存著熱點(diǎn)數(shù)據(jù),應(yīng)用程序可以在本機(jī)內(nèi)存中直接訪問(wèn)數(shù)據(jù)哄陶,而無(wú)需訪問(wèn)數(shù)據(jù)庫(kù)昼弟。

分布式緩存:大型網(wǎng)站的數(shù)據(jù)量非常龐大,即使只緩存一小部分奕筐,需要的內(nèi)存空間也不是單機(jī)能承受的舱痘,所以除了本地緩存变骡,還需要分布式緩存,將數(shù)據(jù)緩存在一個(gè)專門的分布式緩存集群中芭逝,應(yīng)用程序通過(guò)網(wǎng)絡(luò)通信訪問(wèn)緩存數(shù)據(jù)塌碌。

使用緩存有兩個(gè)前提條件,一是數(shù)據(jù)訪問(wèn)熱點(diǎn)不均衡旬盯,某些數(shù)據(jù)會(huì)被更頻繁的訪問(wèn)台妆,這些數(shù)據(jù)應(yīng)該放在緩存中;二是數(shù)據(jù)在某個(gè)時(shí)間段內(nèi)有效胖翰,不會(huì)很快過(guò)期接剩,否則緩存的數(shù)據(jù)就會(huì)因已經(jīng)失效而產(chǎn)生臟讀,影響結(jié)果的正確性萨咳。網(wǎng)站應(yīng)用中懊缺,緩存處理可以加快數(shù)據(jù)訪問(wèn)速度,還可以減輕后端應(yīng)用和數(shù)據(jù)存儲(chǔ)的負(fù)載壓力培他,這一點(diǎn)對(duì)網(wǎng)站數(shù)據(jù)庫(kù)架構(gòu)至關(guān)重要鹃两,網(wǎng)站數(shù)據(jù)庫(kù)幾乎都是按照有緩存的前提進(jìn)行負(fù)載能力設(shè)計(jì)的。

10. 負(fù)載均衡算法

輪詢 Round Robin

加強(qiáng)輪詢 Weight Round Robin

隨機(jī) Random

加強(qiáng)隨機(jī) Weight Random

最少連接 Least Connections

加強(qiáng)最少連接

源地址散列 Hash

其他算法

最快算法(Fastest):傳遞連接給那些響應(yīng)最快的服務(wù)器舀凛。當(dāng)其中某個(gè)服務(wù)器發(fā)生第二到第7 層的故障俊扳,BIG-IP 就把其從服務(wù)器隊(duì)列中拿出,不參加下一次的用戶請(qǐng)求的分配猛遍,直到其恢復(fù)正常馋记。

觀察算法(Observed):連接數(shù)目和響應(yīng)時(shí)間以這兩項(xiàng)的最佳平衡為依據(jù)為新的請(qǐng)求選擇服務(wù)器。當(dāng)其中某個(gè)服務(wù)器發(fā)生第二到第7 層的故障懊烤,BIG-IP就把其從服務(wù)器隊(duì)列中拿出梯醒,不參加下一次的用戶請(qǐng)求的分配,直到其恢復(fù)正常奸晴。

預(yù)測(cè)算法(Predictive):BIG-IP利用收集到的服務(wù)器當(dāng)前的性能指標(biāo),進(jìn)行預(yù)測(cè)分析日麸,選擇一臺(tái)服務(wù)器在下一個(gè)時(shí)間片內(nèi)寄啼,其性能將達(dá)到最佳的服務(wù)器相應(yīng)用戶的請(qǐng)求。(被BIG-IP 進(jìn)行檢測(cè))

動(dòng)態(tài)性能分配算法(Dynamic Ratio-APM):BIG-IP 收集到的應(yīng)用程序和應(yīng)用服務(wù)器的各項(xiàng)性能參數(shù)代箭,動(dòng)態(tài)調(diào)整流量分配墩划。

動(dòng)態(tài)服務(wù)器補(bǔ)充算法(Dynamic Server Act.):當(dāng)主服務(wù)器群中因故障導(dǎo)致數(shù)量減少時(shí),動(dòng)態(tài)地將備份服務(wù)器補(bǔ)充至主服務(wù)器群嗡综。

服務(wù)質(zhì)量算法(QoS):按不同的優(yōu)先級(jí)對(duì)數(shù)據(jù)流進(jìn)行分配乙帮。

服務(wù)類型算法(ToS): 按不同的服務(wù)類型(在Type of Field中標(biāo)識(shí))負(fù)載均衡對(duì)數(shù)據(jù)流進(jìn)行分配。

規(guī)則模式算法:針對(duì)不同的數(shù)據(jù)流設(shè)置導(dǎo)向規(guī)則极景,用戶可自行

11. 擴(kuò)展性和伸縮性的區(qū)別

擴(kuò)展性:指對(duì)現(xiàn)有系統(tǒng)影響最小的情況下察净,系統(tǒng)功能可持續(xù)擴(kuò)展或替身的能力驾茴。表現(xiàn)在系統(tǒng)基礎(chǔ)設(shè)施穩(wěn)定不需要經(jīng)常變更,應(yīng)用之間較少依賴和耦合氢卡,對(duì)需求變更可以敏捷響應(yīng)锈至。它是系統(tǒng)架構(gòu)設(shè)計(jì)層面的開(kāi)閉原則(對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉)译秦,架構(gòu)設(shè)計(jì)考慮未來(lái)功能擴(kuò)展峡捡,當(dāng)系統(tǒng)增加新功能時(shí),不需要對(duì)現(xiàn)有系統(tǒng)的結(jié)構(gòu)和代碼進(jìn)行修改筑悴。

衡量網(wǎng)站架構(gòu)擴(kuò)展性好壞的主要標(biāo)準(zhǔn)就是在網(wǎng)站增加新的業(yè)務(wù)產(chǎn)品時(shí)们拙,是否可以實(shí)現(xiàn)對(duì)現(xiàn)有產(chǎn)品透明無(wú)影響,不需要任何改動(dòng)或者很少改動(dòng)既有業(yè)務(wù)功能就可以上線新產(chǎn)品阁吝。不同產(chǎn)品之間是否很少耦合砚婆,一個(gè)產(chǎn)品改動(dòng)對(duì)其他產(chǎn)品無(wú)影響,其他產(chǎn)品和功能不需要受牽連進(jìn)行改動(dòng)求摇。

伸縮性:所謂網(wǎng)站的伸縮性指是不需要改變網(wǎng)站的軟硬件設(shè)計(jì)射沟,僅僅通過(guò)改變部署的服務(wù)器數(shù)量就可以擴(kuò)大或者縮小網(wǎng)站的服務(wù)處理能力。

指系統(tǒng)能夠增加(減少)自身資源規(guī)模的方式增強(qiáng)(減少)自己計(jì)算處理事務(wù)的能力与境。如果這種增減是成比例的验夯,就被稱作線性伸縮性。在網(wǎng)站架構(gòu)中摔刁,通常指利用集群的方式增加服務(wù)器數(shù)量挥转、提高系統(tǒng)的整體事務(wù)吞吐能力。

衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)就是可以用多臺(tái)服務(wù)器構(gòu)建集群共屈,是否容易向集群中添加新的服務(wù)器绑谣。加入新的服務(wù)器后是否可以提供和原來(lái)服務(wù)無(wú)差別的服務(wù)、集群中的可容納的總的服務(wù)器數(shù)量是否有限制拗引。

12.分布式緩存的一致性hash

具體算法過(guò)程:先構(gòu)造一個(gè)長(zhǎng)度為2^32的整數(shù)環(huán)(這個(gè)環(huán)被稱作一致性Hash環(huán))根據(jù)節(jié)點(diǎn)名稱的Hash值(其分布范圍為[0,2^32 - 1])將緩存服務(wù)器階段設(shè)置在這個(gè)Hash環(huán)上借宵。然后根據(jù)需要緩存的數(shù)據(jù)的Key值計(jì)算得到Hash值(其分布范圍也同樣為[0,2^32 - 1]),然后在Hash環(huán)上順時(shí)針查找舉例這個(gè)KEY的hash值最近的緩存服務(wù)器節(jié)點(diǎn)矾削,完成KEY到服務(wù)器的Hash映射查找壤玫。

優(yōu)化策略:將每臺(tái)物理服務(wù)器虛擬為一組虛擬緩存服務(wù)器,將虛擬服務(wù)器的Hash值放置在Hash環(huán)上哼凯,key在換上先找到虛擬服務(wù)器節(jié)點(diǎn)欲间,再得到物理服務(wù)器的信息。

一臺(tái)物理服務(wù)器設(shè)置多少個(gè)虛擬服務(wù)器節(jié)點(diǎn)合適呢断部?經(jīng)驗(yàn)值:150猎贴。

13. 網(wǎng)絡(luò)安全

1. XSS攻擊

跨站點(diǎn)腳本攻擊(Cross Site Script),指黑客通過(guò)篡改網(wǎng)頁(yè),注入惡意的HTML腳本她渴,在用戶瀏覽網(wǎng)頁(yè)時(shí)达址,控制用戶瀏覽器進(jìn)行惡意操作的一種攻擊方式。

防范手段:消毒(XSS攻擊者一般都是通過(guò)在請(qǐng)求中嵌入惡意腳本大道攻擊的目的惹骂,這些腳本是一般用戶輸入中不使用的苏携,如果進(jìn)行過(guò)濾和消毒處理,即對(duì)某些html危險(xiǎn)字符轉(zhuǎn)移对粪,如“>”轉(zhuǎn)譯為“& gt;”);HttpOnly(防止XSS攻擊者竊取Cookie).

2. 注入攻擊:SQL注入和OS注入

SQL防范:預(yù)編譯語(yǔ)句PreparedStatement; ORM右冻;避免密碼明文存放;處理好相應(yīng)的異常著拭。

3. CSRF(Cross Site Request Forgery纱扭,跨站點(diǎn)請(qǐng)求偽造)。聽(tīng)起來(lái)與XSS有點(diǎn)相似儡遮,事實(shí)上兩者區(qū)別很大乳蛾,XSS利用的是站內(nèi)的信任用戶,而CSRF則是通過(guò)偽裝來(lái)自受信任用戶的請(qǐng)求來(lái)利用受信任的網(wǎng)站鄙币。

防范:httpOnly;增加token;通過(guò)Referer識(shí)別肃叶。

4. 文件上傳漏洞

5. DDos攻擊

14. 加密技術(shù)

摘要加密:MD5, SHA

對(duì)稱加密:DES算法,RC算法十嘿, AES

非對(duì)稱加密:RSA

非對(duì)稱加密技術(shù)通常用在信息安全傳輸因惭,數(shù)字簽名等場(chǎng)合。

HTTPS傳輸中瀏覽器使用的數(shù)字證書實(shí)質(zhì)上是經(jīng)過(guò)權(quán)威機(jī)構(gòu)認(rèn)證的非對(duì)稱加密的公鑰绩衷。

15. 流控(流量控制)

流量丟棄

通過(guò)單機(jī)內(nèi)存隊(duì)列來(lái)進(jìn)行有限的等待蹦魔,直接丟棄用戶請(qǐng)求的處理方式顯得簡(jiǎn)單而粗暴,并且如果是I/O密集型應(yīng)用(包括網(wǎng)絡(luò)I/O和磁盤I/O)咳燕,瓶頸一般不再CPU和內(nèi)存勿决。因此,適當(dāng)?shù)牡却忻ぃ饶軌蛱嫔碛脩趔w驗(yàn)低缩,又能夠提高資源利用率。

通過(guò)分布式消息隊(duì)列來(lái)將用戶的請(qǐng)求異步化曹货。

在這里順便給大家推薦一個(gè)架構(gòu)交流群:617434785咆繁,里面會(huì)分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis控乾,Netty源碼分析么介,高并發(fā)娜遵、高性能蜕衡、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識(shí)體系慨仿。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源久脯。相信對(duì)于已經(jīng)工作和遇到技術(shù)瓶頸的碼友,在這個(gè)群里會(huì)有你需要的內(nèi)容

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末镰吆,一起剝皮案震驚了整個(gè)濱河市帘撰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌万皿,老刑警劉巖摧找,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異牢硅,居然都是意外死亡蹬耘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門减余,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)综苔,“玉大人,你說(shuō)我怎么就攤上這事位岔∪缟福” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵抒抬,是天一觀的道長(zhǎng)杨刨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)瞧剖,這世上最難降的妖魔是什么拭嫁? 我笑而不...
    開(kāi)封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮抓于,結(jié)果婚禮上做粤,老公的妹妹穿的比我還像新娘。我一直安慰自己捉撮,他們只是感情好怕品,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著巾遭,像睡著了一般肉康。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灼舍,一...
    開(kāi)封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天吼和,我揣著相機(jī)與錄音,去河邊找鬼骑素。 笑死炫乓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播末捣,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼侠姑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了箩做?” 一聲冷哼從身側(cè)響起莽红,我...
    開(kāi)封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邦邦,沒(méi)想到半個(gè)月后安吁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燃辖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年柳畔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郭赐。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薪韩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捌锭,到底是詐尸還是另有隱情俘陷,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布观谦,位于F島的核電站拉盾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏豁状。R本人自食惡果不足惜捉偏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泻红。 院中可真熱鬧夭禽,春花似錦、人聲如沸谊路。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缠劝。三九已至潮梯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惨恭,已是汗流浹背秉馏。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脱羡,地道東北人萝究。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓母廷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親糊肤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容