高并發(fā)金融應(yīng)用架構(gòu)優(yōu)化與平臺創(chuàng)新

高并發(fā)金融應(yīng)用架構(gòu)優(yōu)化與平臺創(chuàng)新

作者簡介

李亞瓊,2015年加入BoCloud博云,任CTO,曾任曙光云計(jì)算產(chǎn)品事業(yè)部總工程師哗讥,兼任電子政務(wù)云集成與應(yīng)用國家工程實(shí)驗(yàn)室專家委員宗兼。

小微金融氯檐、場景金融等新興銀行金融業(yè)務(wù)亟需一種新型的彈性架構(gòu)來應(yīng)對高并發(fā)、大流量的業(yè)務(wù)沖擊寂玲,同時(shí)塔插,要滿足應(yīng)用快速版本迭代升級、敏捷運(yùn)維管理等需求拓哟。本文分享了BoCloud博云如何利用互聯(lián)網(wǎng)應(yīng)用架構(gòu)與Docker容器技術(shù)幫助銀行業(yè)應(yīng)對“互聯(lián)網(wǎng)+”挑戰(zhàn)想许,建設(shè)基于PaaS平臺的敏捷IT架構(gòu)。

移動互聯(lián)網(wǎng)渠道創(chuàng)新是傳統(tǒng)企業(yè)無法也不能躲避的業(yè)務(wù)變革断序,無論是接入或者自建互聯(lián)網(wǎng)渠道都需要回答如下問題:現(xiàn)在的IT架構(gòu)能否應(yīng)對互聯(lián)網(wǎng)渠道創(chuàng)新業(yè)務(wù)的爆炸性沖擊流纹?什么樣的IT架構(gòu)才能夠解決這個(gè)問題并具備應(yīng)對未來需求的良好擴(kuò)展能力?以銀行業(yè)為例违诗,傳統(tǒng)的銀行渠道比較單一漱凝,基本上圍繞各個(gè)分支機(jī)構(gòu)和營業(yè)網(wǎng)點(diǎn)運(yùn)營,IT系統(tǒng)的性能指標(biāo)在整個(gè)體系中的重要性往往要低于業(yè)務(wù)可靠性诸迟。然而茸炒,這一切正在發(fā)生改變,圍繞互聯(lián)網(wǎng)渠道的創(chuàng)新業(yè)務(wù)已經(jīng)改變了這種現(xiàn)狀亮蒋。

新金融IT需求

銀行業(yè)已經(jīng)告別了傳統(tǒng)業(yè)務(wù)為中心的模式扣典,開始轉(zhuǎn)變成以客戶需求為核心進(jìn)行業(yè)務(wù)設(shè)計(jì)與金融創(chuàng)新,這也正是場景金融的內(nèi)涵慎玖。無論是傳統(tǒng)的電子銀行業(yè)務(wù)贮尖,還是渠道創(chuàng)新的直銷銀行業(yè)務(wù),以及互聯(lián)網(wǎng)金融的各種“寶”們趁怔,都是滿足客戶各種場景金融需求而建立的湿硝。圖1是現(xiàn)代銀行的一些業(yè)務(wù)及其基于的運(yùn)營平臺薪前。

圖1 ?現(xiàn)代銀行的業(yè)務(wù)及其運(yùn)營平臺

圍繞客戶、渠道关斜、數(shù)據(jù)和平臺示括,銀行業(yè)CIO需要解決三個(gè)主要問題:

如何快速實(shí)現(xiàn)業(yè)務(wù)上線來應(yīng)對快速變化的市場?

應(yīng)用架構(gòu)如何應(yīng)對互聯(lián)網(wǎng)帶來的瞬時(shí)大規(guī)模并發(fā)請求帶來的負(fù)載壓力痢畜?

如何實(shí)現(xiàn)大量業(yè)務(wù)應(yīng)用垛膝、服務(wù)與數(shù)據(jù)的統(tǒng)一化管理并確保上述兩個(gè)問題的解決?

采用過去煙囪式建設(shè)模式具有如下三個(gè)弊端:

1. 建設(shè)周期過長丁稀。傳統(tǒng)的建設(shè)模式從規(guī)劃吼拥、采購、開發(fā)线衫、上線凿可、試運(yùn)行等階段才能上線一個(gè)新的業(yè)務(wù)應(yīng)用,時(shí)間跨度從幾個(gè)月到幾年授账,十分漫長枯跑。而基于互聯(lián)網(wǎng)事件的營銷類應(yīng)用需要及時(shí)對事件作出響應(yīng),對業(yè)務(wù)上線周期具有十分苛刻的要求白热,傳統(tǒng)模式顯然無法滿足敛助。

2. 擴(kuò)展性不能滿足業(yè)務(wù)需要。傳統(tǒng)的應(yīng)用一般基于規(guī)劃容量進(jìn)行設(shè)計(jì)與開發(fā)棘捣,用戶的規(guī)模是可以估計(jì)辜腺,在極端條件下可以通過排隊(duì)等機(jī)制降低負(fù)載壓力。然而乍恐,“秒殺”评疗、“搶購”等應(yīng)用模式卻不具有這樣的前提條件,用戶規(guī)模會在極短的時(shí)間內(nèi)爆炸性增加茵烈。簡單的排隊(duì)策略會讓用戶大大降低產(chǎn)品和服務(wù)的質(zhì)量評價(jià)百匆,無法滿足快速擴(kuò)展的需要。

3. 業(yè)務(wù)封閉呜投。傳統(tǒng)的業(yè)務(wù)與業(yè)務(wù)之間很少互相訪問加匈,業(yè)務(wù)服務(wù)在設(shè)計(jì)與運(yùn)營過程中也缺乏復(fù)用的考慮,更不用說滿足多個(gè)場景并發(fā)訪問的需求仑荐。

建設(shè)思路

為了解決上述問題雕拼,我們和多家銀行架構(gòu)部門合作,規(guī)劃了“重平臺粘招、輕應(yīng)用啥寇、服務(wù)化”的新金融IT基礎(chǔ)平臺(如圖2)。

圖2 ?“重平臺、輕應(yīng)用辑甜、服務(wù)化”的新金融IT基礎(chǔ)平臺

新一代的IT架構(gòu)應(yīng)該具備如下特點(diǎn):

IT基礎(chǔ)設(shè)施與服務(wù)平臺已經(jīng)集成了應(yīng)用程序所需要的基礎(chǔ)件或服務(wù)衰絮,比如資源申請、調(diào)度服務(wù)磷醋、消息猫牡、數(shù)據(jù)等。重平臺概念的內(nèi)涵就在于大量基礎(chǔ)服務(wù)或經(jīng)驗(yàn)數(shù)據(jù)能“沉積”在平臺中邓线,構(gòu)成應(yīng)用基礎(chǔ)架構(gòu)的核心淌友。

應(yīng)用的開發(fā)、上線骇陈、迭于升級都需要足夠的敏捷亩进。這一方面依賴平臺集成的基礎(chǔ)服務(wù),另一方面需要平臺能快速實(shí)現(xiàn)對于應(yīng)用封裝缩歪、發(fā)布、迭代升級的支持谍憔,具備一鍵式部署匪蝙、升級等特性。

應(yīng)用的架構(gòu)需要由平臺服務(wù)或組件“封裝”而成习贫,服務(wù)或組件能提高系統(tǒng)的并發(fā)逛球,同時(shí)具備可并行化特征,除了能降低服務(wù)響應(yīng)延遲外苫昌,最重要的是可以通過整個(gè)平臺服務(wù)來支撐大并發(fā)訪問需求颤绕。

從業(yè)務(wù)需求的角度來說,“輕應(yīng)用”的平臺能夠快速“組裝”出新的業(yè)務(wù)形態(tài)來滿足市場快速變化的需求祟身,“服務(wù)化”一方面加強(qiáng)各個(gè)業(yè)務(wù)之間更多的關(guān)聯(lián)提高了服務(wù)質(zhì)量奥务,另一方面可以把優(yōu)秀的經(jīng)驗(yàn)和實(shí)踐固化下來增強(qiáng)企業(yè)業(yè)務(wù)競爭力⊥嗔颍“重平臺”特性可以通過整個(gè)平臺的“能力”有效支撐業(yè)務(wù)負(fù)載壓力氯葬,確保應(yīng)用的資源、擴(kuò)展婉陷、并發(fā)需求等得到滿足帚称。

當(dāng)然,上述特性不是天然就具備的秽澳,需要從應(yīng)用架構(gòu)和平臺創(chuàng)新兩個(gè)方面進(jìn)行改變來確保目標(biāo)達(dá)到闯睹。

應(yīng)用架構(gòu)優(yōu)化

回到移動互聯(lián)網(wǎng)模式下應(yīng)用應(yīng)該具備特點(diǎn):1. 需要能夠應(yīng)對大量用戶同時(shí)并發(fā)訪問需求,即應(yīng)用架構(gòu)要具有優(yōu)秀的并發(fā)性和彈性担神;2. 應(yīng)用要能夠快速迭代楼吃,一方面滿足業(yè)務(wù)發(fā)展需要,另一方面可以不斷對性能進(jìn)行調(diào)優(yōu)來改進(jìn)服務(wù)質(zhì)量;3. 應(yīng)用架構(gòu)要滿足能夠快速“組裝”出新的業(yè)務(wù)應(yīng)用來支撐快速變化的市場需要所刀。也就是說衙荐,應(yīng)用架構(gòu)要具備:

強(qiáng)大的并發(fā)能力;

靈活的彈性浮创;

敏捷的迭代能力忧吟;

標(biāo)準(zhǔn)化可組裝性;

這幾種能力的獲得需要從多個(gè)角度對系統(tǒng)進(jìn)行優(yōu)化斩披,典型的優(yōu)化包括:流量負(fù)載均衡溜族、異步IO、消息隊(duì)列垦沉、讀寫分離煌抒、分庫分表、對象緩存厕倍、服務(wù)拆分寡壮、索引服務(wù)、分布式內(nèi)容管理讹弯、CDN况既、空間換時(shí)間優(yōu)化等手段。

負(fù)載均衡

根據(jù)業(yè)務(wù)模型和業(yè)務(wù)服務(wù)協(xié)議组民,一般可選擇的負(fù)載均衡方案包括:鏈路層負(fù)載均衡棒仍、IP層負(fù)載均衡、Http反向代理臭胜、DNS域名解析負(fù)載均衡莫其、Http重定向負(fù)載均衡。大型網(wǎng)站或業(yè)務(wù)服務(wù)往往采用多種手段進(jìn)行流量的負(fù)載均衡耸三,比如先基于DNS實(shí)現(xiàn)多數(shù)據(jù)中心的負(fù)載均衡乱陡,再根據(jù)IP實(shí)現(xiàn)數(shù)據(jù)中心內(nèi)多業(yè)務(wù)負(fù)載均衡,最后在基于反向代理實(shí)現(xiàn)統(tǒng)一業(yè)務(wù)的不同服務(wù)器之間的負(fù)載均衡(如圖3)仪壮。

圖3 ?負(fù)載均衡

異步

異步是提高系統(tǒng)并發(fā)性的重要技術(shù)蛋褥,和異步共同出現(xiàn)的還有任務(wù)(消息)隊(duì)列、線程池和持久化連接等技術(shù)睛驳。異步技術(shù)是事件驅(qū)動的編程模型實(shí)際應(yīng)用的典范:用戶請求先被放入隊(duì)列烙心,然后喚醒任務(wù)分發(fā)器,任務(wù)分發(fā)器從任務(wù)隊(duì)列取下任務(wù)分發(fā)到空閑的線程上乏沸,線程觸發(fā)異步操作并注冊回調(diào)方法淫茵,當(dāng)返回后回調(diào)方法重新從任務(wù)隊(duì)列中把任務(wù)取下并把結(jié)果返回。整個(gè)過程如下(如圖4):

圖4 異步IO

消息隊(duì)列

消息隊(duì)列對于提高系統(tǒng)并發(fā)性能具有四個(gè)方面的作用:1. 通過消息隊(duì)列實(shí)現(xiàn)異步處理蹬跃,如上述異步IO中的任務(wù)隊(duì)列就是可以基于消息隊(duì)列實(shí)現(xiàn)匙瘪;2. 任務(wù)并行執(zhí)行铆铆,通過消息隊(duì)列可以把傳統(tǒng)串行執(zhí)行的任務(wù)盡量改造成可并行的程序;3. 應(yīng)用解耦丹喻,提高系統(tǒng)的擴(kuò)展性薄货;4. 流量削峰,通過消息隊(duì)列引入排隊(duì)機(jī)制碍论,可以把尖峰負(fù)載盡量平整化谅猾。下圖為一個(gè)Web網(wǎng)站的消息系統(tǒng)(如圖5)。

圖5 消息隊(duì)列

數(shù)據(jù)庫讀寫分離/分庫分表

隨著訪問量增多鳍悠,數(shù)據(jù)庫系統(tǒng)的壓力會越來越大税娜。在一個(gè)信息系統(tǒng)中,數(shù)據(jù)庫系統(tǒng)的性能往往是對系統(tǒng)整體性能影響最為關(guān)鍵的指標(biāo)藏研。從數(shù)據(jù)庫架構(gòu)設(shè)計(jì)的角度敬矩,常用的優(yōu)化手段為讀寫分離與分庫分表。前者是采用讀寫請求分別路由到不同的庫中來降低數(shù)據(jù)庫系統(tǒng)壓力的一種技術(shù)蠢挡,采用該技術(shù)可以最大程度提高系統(tǒng)的并發(fā)讀弧岳,特別是對讀多寫少的訪問模式十分有效。兩個(gè)庫之間通過數(shù)據(jù)同步业踏,可以確保數(shù)據(jù)的一致性缩筛。讀寫分離模式如圖6所示。

圖6 數(shù)據(jù)庫讀寫分離/分庫分表

隨著業(yè)務(wù)的運(yùn)行堡称,數(shù)據(jù)量隨之不斷增多。當(dāng)達(dá)到一定的記錄條目時(shí)艺演,一次查詢往往需要消耗很長時(shí)間才能返回結(jié)果却紧。這時(shí)分庫分表設(shè)計(jì)就提到了日程。分庫設(shè)計(jì)一般根據(jù)業(yè)務(wù)把不同的內(nèi)容存到不同的數(shù)據(jù)庫中胎撤,也稱為垂直拆分晓殊。這種拆分模式比較靈活,也易于操作伤提,不足之處在于需要考慮跨多數(shù)據(jù)庫的符合業(yè)務(wù)查詢join問題巫俺。分表設(shè)計(jì)也叫水平拆分,就是把同一個(gè)表中的數(shù)據(jù)拆分到兩個(gè)甚至多個(gè)數(shù)據(jù)庫中肿男。產(chǎn)生數(shù)據(jù)水平拆分的原因是某個(gè)業(yè)務(wù)的數(shù)據(jù)量或者更新量到達(dá)了單個(gè)數(shù)據(jù)庫的瓶頸介汹,這時(shí)就可以把這個(gè)表拆分到兩個(gè)或更多個(gè)數(shù)據(jù)庫中。Mycat是最為常用的分庫分庫中間件舶沛,圖7為Mycat架構(gòu)嘹承,有興趣的同學(xué)可以前往Mycat官方網(wǎng)站學(xué)習(xí)了解。

圖7 Mycat架構(gòu)

服務(wù)拆分

服務(wù)拆分是把過去全部運(yùn)行在一個(gè)應(yīng)用容器內(nèi)部的業(yè)務(wù)邏輯子系統(tǒng)拆分出來如庭,單獨(dú)運(yùn)行在獨(dú)立的容器內(nèi)部叹卷。這樣做有兩個(gè)好處:1,可以降低系統(tǒng)耦合度,使得業(yè)務(wù)具備快速迭代能力骤竹;2帝牡,方便的定位影響性能子系統(tǒng),針對性地進(jìn)行性能優(yōu)化蒙揣。例如靶溜,短信子系統(tǒng)從整個(gè)系統(tǒng)中拆分出來后,系統(tǒng)可以方便地測試短信收發(fā)的并發(fā)效率及延遲鸣奔,這樣可以針對性地進(jìn)行設(shè)計(jì)改進(jìn)與架構(gòu)優(yōu)化墨技。

內(nèi)存緩存

隨著訪問量增加,逐漸出現(xiàn)了許多用戶訪問同一部分內(nèi)容的情況挎狸,對于這些比較熱門的內(nèi)容扣汪,沒必要每次都從數(shù)據(jù)庫讀取。我們可以使用緩存技術(shù)锨匆,例如可以使用Memcacahe作為應(yīng)用層的緩存崭别,也可以使用Redis作為數(shù)據(jù)庫層緩存宛琅。另外压恒,緩存系統(tǒng)也可以用來保存需要分享的數(shù)據(jù),比如用戶登錄的會話信息(Session)弃酌。通過緩存系統(tǒng)共享會話是實(shí)現(xiàn)單點(diǎn)登錄及會話管理的重要技術(shù)土榴。加入緩存后的系統(tǒng)架構(gòu)如圖8所示诀姚。

圖8 加入緩存后的系統(tǒng)架構(gòu)

索引系統(tǒng)

對于模糊查找,利用讀數(shù)據(jù)庫進(jìn)行查詢往往力不從心玷禽,即使做了讀寫分離赫段,這個(gè)問題依然是影響性能的一種重要場景。以交易網(wǎng)站型為例矢赁,基于關(guān)鍵詞查找商品或服務(wù)是一種最為常用的功能糯笙,尤其是根據(jù)商品的標(biāo)題來查找對應(yīng)的商品。對于這種需求撩银,在數(shù)據(jù)庫操作中我們都是通過like功能來實(shí)現(xiàn)的给涕,但是這種方式的開銷很大,且針對大數(shù)量查詢非常耗時(shí)额获。此時(shí)我們可以使用搜索引擎的索引來完成够庙。

分布式存儲系統(tǒng)/CDN

針對非結(jié)構(gòu)化數(shù)據(jù)的訪問優(yōu)化,一般的策略是構(gòu)建分布式存儲系統(tǒng)抄邀。支撐分布式存儲系統(tǒng)是具備良好擴(kuò)展性和并發(fā)性能的存儲系統(tǒng)首启,設(shè)計(jì)良好的分布式存儲系統(tǒng)能夠?qū)崿F(xiàn)訪問文件的快速定位、加速讀寫撤摸、實(shí)現(xiàn)高并發(fā)毅桃。例如Ceph就是一個(gè)優(yōu)秀的開源分布式存儲系統(tǒng)褒纲。

CDN是更大尺度的優(yōu)化手段,通常用戶大型或超大型網(wǎng)絡(luò)服務(wù)運(yùn)營钥飞。利用CDN莺掠,可以把不常變化的資源放置在網(wǎng)絡(luò)的邊緣,加速終端用戶獲取資源的速度读宙。

空間換時(shí)間優(yōu)化

空間換時(shí)間優(yōu)化的一個(gè)典型應(yīng)用場景是應(yīng)對不同分辨率屏幕時(shí)向用戶提供同一圖片的不同分辨率版本彻秆,這是根據(jù)常見的屏幕分辨率在用戶上傳圖片時(shí)自動生成不同分辨率圖片避免用戶請求時(shí)實(shí)時(shí)進(jìn)行轉(zhuǎn)換的開銷。這種優(yōu)化對于視頻结闸、多格式存儲文件等也非常有用唇兑。

綜上所述,利用各種優(yōu)化手段后整個(gè)互聯(lián)網(wǎng)應(yīng)用架構(gòu)如圖9所示桦锄。

圖9 優(yōu)化后整個(gè)互聯(lián)網(wǎng)應(yīng)用架構(gòu)

平臺創(chuàng)新

上述架構(gòu)的落地還面臨一系列挑戰(zhàn)扎附,包括:

1. 如何部署實(shí)施這么復(fù)雜的系統(tǒng)?

2. 如何快速定位高負(fù)載壓力瓶頸子系統(tǒng)并自動進(jìn)行擴(kuò)容處理结耀?

3. 版本的迭代升級如何可控有序地得到執(zhí)行留夜?

上述問題如何解決呢?回顧前文所說的新一代平臺架構(gòu)的三個(gè)特性图甜,即“重平臺碍粥、輕應(yīng)用、服務(wù)化”黑毅,其中重平臺和服務(wù)化的特性就是上述問題的解決思路嚼摩。

重平臺和服務(wù)化概念的背后是整個(gè)平臺已經(jīng)固化了大量可獨(dú)立對外提供服務(wù)的組件或子系統(tǒng),應(yīng)用只需要負(fù)責(zé)業(yè)務(wù)邏輯的部分即可完成整個(gè)系統(tǒng)的部署上線矿瘦。要實(shí)現(xiàn)這一點(diǎn)枕面,需要做到如下三點(diǎn):

1. 應(yīng)用需要進(jìn)行業(yè)務(wù)邏輯、數(shù)據(jù)存儲和服務(wù)組件的分離匪凡,實(shí)現(xiàn)業(yè)務(wù)邏輯、數(shù)據(jù)和組件服務(wù)的獨(dú)立運(yùn)行掘猿。

2. 平臺要具備根據(jù)業(yè)務(wù)病游、數(shù)據(jù)和服務(wù)(組件)定義(編排)業(yè)務(wù)架構(gòu)的能力,能夠?qū)崿F(xiàn)業(yè)務(wù)的編排部署稠通。

3. 平臺要能夠?qū)崿F(xiàn)對業(yè)務(wù)衬衬、組件(服務(wù))和數(shù)據(jù)存儲個(gè)子系統(tǒng)的運(yùn)維管理,確保其在負(fù)載壓力增大時(shí)能夠自動彈性伸縮提升用戶體驗(yàn)改橘。

這就涉及應(yīng)用封裝滋尉、業(yè)務(wù)編排和彈性伸縮(自動運(yùn)維)等方面的技術(shù)。BoCloud博云基于Docker的云應(yīng)用發(fā)布與運(yùn)維管理平臺正是基于這樣的理念和需求而開發(fā)的飞主。圖10為BoCloud的BeyondContainer產(chǎn)品架構(gòu):

圖10 BoCloud的BeyondContainer產(chǎn)品架構(gòu)

如圖所示狮惜,它包括三個(gè)主要部分:

基礎(chǔ)設(shè)施子平臺:負(fù)責(zé)管理平臺的基礎(chǔ)設(shè)施高诺,除了服務(wù)器、存儲碾篡、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施外虱而,還包括圍繞應(yīng)用相關(guān)的基礎(chǔ)組件管理,如鏡像倉庫开泽、容器牡拇、組件等。

應(yīng)用管控子平臺:負(fù)責(zé)管理平臺上的各類應(yīng)用穆律,提供應(yīng)用部署惠呼、維護(hù)、日志等管理管控峦耘,同時(shí)實(shí)現(xiàn)多租戶環(huán)境剔蹋,實(shí)現(xiàn)基于服務(wù)目錄的應(yīng)用發(fā)布服務(wù)。

一體化監(jiān)控子平臺:負(fù)責(zé)對整個(gè)平臺中的資源贡歧、應(yīng)用滩租、通信等進(jìn)行監(jiān)控,并以可視化形式對外呈現(xiàn)系統(tǒng)各類監(jiān)控信息利朵。

限于篇幅律想,關(guān)于BeyondContainer的架構(gòu)和特性就不再這里展開闡述。

總結(jié)

本文分享了BoCloud博云在幫助傳統(tǒng)企業(yè)應(yīng)對移動互聯(lián)網(wǎng)業(yè)務(wù)沖擊時(shí)在應(yīng)用與平臺架構(gòu)上進(jìn)行創(chuàng)新實(shí)踐的經(jīng)驗(yàn)绍弟,希望能夠?qū)Υ蠹矣兴鶈l(fā)技即。

本文為《程序員》原創(chuàng)文章,未經(jīng)允許不得轉(zhuǎn)載樟遣,更多精彩文章請訂閱2016年《程序員》

《程序員》文章推薦閱讀:

FPGA:下一代機(jī)器人感知處理器

“PHP之父”Rasmus Lerdorf訪談錄

無人駕駛核心技術(shù)探秘:光學(xué)雷達(dá)

淘寶大秒系統(tǒng)設(shè)計(jì)詳解

七年阿里老人談新人成長

向Spark開炮:1.6版本問題總結(jié)與趟坑

2016年而叼,C語言該怎樣寫

高可用性系統(tǒng)在大眾點(diǎn)評的實(shí)踐與經(jīng)驗(yàn)

拓?fù)鋽?shù)據(jù)分析在機(jī)器學(xué)習(xí)中的應(yīng)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市豹悬,隨后出現(xiàn)的幾起案子葵陵,更是在濱河造成了極大的恐慌,老刑警劉巖瞻佛,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脱篙,死亡現(xiàn)場離奇詭異,居然都是意外死亡伤柄,警方通過查閱死者的電腦和手機(jī)绊困,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來适刀,“玉大人秤朗,你說我怎么就攤上這事”屎恚” “怎么了取视?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵硝皂,是天一觀的道長。 經(jīng)常有香客問我贫途,道長吧彪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任丢早,我火速辦了婚禮姨裸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怨酝。我一直安慰自己傀缩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布农猬。 她就那樣靜靜地躺著赡艰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斤葱。 梳的紋絲不亂的頭發(fā)上慷垮,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機(jī)與錄音揍堕,去河邊找鬼料身。 笑死,一個(gè)胖子當(dāng)著我的面吹牛衩茸,可吹牛的內(nèi)容都是我干的芹血。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼楞慈,長吁一口氣:“原來是場噩夢啊……” “哼幔烛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起囊蓝,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤饿悬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后聚霜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狡恬,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年俯萎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了傲宜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片运杭。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡夫啊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辆憔,到底是詐尸還是另有隱情撇眯,我是刑警寧澤报嵌,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站熊榛,受9級特大地震影響锚国,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玄坦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一血筑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煎楣,春花似錦豺总、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至困曙,卻和暖如春表伦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慷丽。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工蹦哼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盈魁。 一個(gè)月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓翔怎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杨耙。 傳聞我的和親對象是個(gè)殘疾皇子赤套,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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