撮合引擎的建立

撮合系統(tǒng)設(shè)計(jì)

撮合技術(shù)

摘要: 撮合技術(shù)主要是從數(shù)據(jù)庫撮合技術(shù)向內(nèi)存撮合技術(shù)發(fā)展氮唯,這是因?yàn)閿?shù)據(jù)庫撮合技術(shù)越來越無法滿足金融交易對于高可靠性、高性能、強(qiáng)安全性拥知、可擴(kuò)展性以及易維護(hù)性的需求。本文來自中生代技術(shù)群的34期分享碎赢,將和大家討論基于內(nèi)存的撮合的系統(tǒng)設(shè)計(jì)低剔。

概述

隨著信息技術(shù)的日新月異和金融業(yè)務(wù)的快速發(fā)展,金融交易領(lǐng)域?qū)τ诤诵募夹g(shù)的求也在不斷增強(qiáng),國內(nèi)外金融交易模式已經(jīng)從傳統(tǒng)的人工叫價(jià)的方式變成了由高度電子化交易系統(tǒng)撮合訂單的方式。傳統(tǒng)的金融交易主要發(fā)生在有型金融市場中,金融交易的買賣雙方通過叫價(jià)進(jìn)行價(jià)格協(xié)商等方式最終達(dá)成一致,從而形成一筆交易,同時(shí)按照交易訂單到指定的交割地點(diǎn)進(jìn)行實(shí)物交割的交易方式肮塞。由于交易的整個(gè)過程主要依靠人來執(zhí)行,傳統(tǒng)的金融交易缺點(diǎn)主要有:效率低速度慢襟齿、交易時(shí)間限制大、交易空間限制大枕赵、交易成本非常髙猜欺、容易有內(nèi)幕交易、交易擴(kuò)展性差拷窜、交易容易出錯(cuò)开皿、資金安全性差等一系列的缺點(diǎn)。

時(shí)代不斷變遷,金融交易通過與計(jì)算機(jī)技術(shù)的結(jié)合,走上了電子化交易的道路,通過將金融交易市場電子化,電子交易不僅消除了傳統(tǒng)金融交易的種種弊端,也促進(jìn)了現(xiàn)代金融業(yè)的快速發(fā)展篮昧。電子金融交易的主要優(yōu)點(diǎn)有:交易效率高速度快赋荆、交易透明度高、交易成本低懊昨、系統(tǒng)安全性高窄潭、不受交易時(shí)間的限制、不受交易空間的限制酵颁、可以進(jìn)行多方位的擴(kuò)展嫉你、大力推動現(xiàn)代金融業(yè)發(fā)展等月帝。

因此現(xiàn)在電子交易己經(jīng)成為了金融交易市場的主流交易方式。隨著交易人數(shù)均抽、筆數(shù)的不斷增加,系統(tǒng)承受著越來越大的壓力,如果在交易時(shí)間內(nèi)系統(tǒng)發(fā)生故障,造成的損失往往不可估量嫁赏。因此發(fā)出更可靠更高效的電子交易系統(tǒng)己經(jīng)成為了金融交易領(lǐng)域的當(dāng)務(wù)之急。

撮合交易在金融交易系統(tǒng)中扮演者非常重要的角色油挥。了解撮合交易的本質(zhì)以及業(yè)務(wù)對于設(shè)計(jì)撮合系統(tǒng)至關(guān)重要潦蝇。江蘇大泰技術(shù)有限公司,致力于互聯(lián)網(wǎng)金融平臺的開發(fā)深寥,目前已經(jīng)在運(yùn)行的平臺有大宗交易攘乒、普洱茶交易系統(tǒng),后期會發(fā)布連續(xù)現(xiàn)貨和發(fā)售交易平臺惋鹅,接下來為大家介紹基于內(nèi)存的撮合交易系統(tǒng)設(shè)計(jì)概要则酝。

系統(tǒng)總體設(shè)計(jì)

2.1 層次設(shè)計(jì)

一般而言,金融交易撮合系統(tǒng)中包括以下幾個(gè)核心模塊:

用戶:終端用戶委托報(bào)價(jià)與數(shù)量,生成訂單發(fā)送至交易平臺。

網(wǎng)關(guān):負(fù)責(zé)收集用戶訂單,并將其派發(fā)給撮合引擎闰集。

撮合引擎:交易系統(tǒng)中的核心部分,用于接收訂單并根據(jù)業(yè)務(wù)邏輯實(shí)現(xiàn)訂單? 撮合同時(shí)生成交易記錄,隨后給予用戶交易結(jié)果反饋沽讹。

數(shù)據(jù)庫:用來存放交易過程中的訂單和交易記錄,實(shí)現(xiàn)數(shù)據(jù)持久化。

此外,本文根據(jù)不同類型的金融交易展品將撮合模塊劃分為若干業(yè)務(wù)分區(qū),每個(gè)分區(qū)獨(dú)立進(jìn)行撮合,彼此不受影響武鲁。對于單個(gè)業(yè)務(wù)分區(qū)而言,撮合系統(tǒng)整體架構(gòu)設(shè)計(jì)如圖1.2所示,本章的總體設(shè)計(jì)圍繞撮合引擎層以及撮合引擎與網(wǎng)關(guān)層爽雄、數(shù)據(jù)庫層的交互方式的總體設(shè)計(jì)。

2.2 撮合交易算法

如圖2.1所示,撮合引擎的核心業(yè)務(wù)模塊就是撮合交易算法撮合交易算法的任務(wù)一方面是完成對客戶所下訂單進(jìn)行公平合理的排列和撮合功能,也要保證撮合算法的公平性沐鼠、高效性以及擴(kuò)展性等挚瘟。由于不同金融交易系統(tǒng)的撮合業(yè)務(wù)各有不同,因此本節(jié)對通用的撮合交易算法進(jìn)行概括性描述。

b12e4e92c9cbb1d1063eb2e69ab2e96c3fd0bf0b

2.2.1 訂單隊(duì)列

撮合交易的重要組成部分就是買賣訂單,通過對買賣訂單進(jìn)行撮合最后形成交易記錄饲梭。所以對無法立刻完成撮合的訂單,需要有買入隊(duì)列和賣出隊(duì)列保存訂單乘盖。隊(duì)列按照“價(jià)格優(yōu)先、同價(jià)格下時(shí)間優(yōu)先”的原則憔涉。買入隊(duì)列按照委托價(jià)格從低到高的順序,賣出隊(duì)列則按照委托價(jià)格從低到高的順序排列,如圖

f12b0c3aae4091991e7e251d20c89f47eafdd10b

2.2.2撮合順序

撮合引擎接收到新的買入訂單,則會到賣出隊(duì)列的頭部查找是否存在符合價(jià)格規(guī)則的賣出訂單,如果存在賣出價(jià)格小于或等于買入價(jià)格的訂單,則從隊(duì)列中取出此訂單并撮合成一筆交易;如果賣出隊(duì)列為空或隊(duì)列頭部不滿足價(jià)格關(guān)系,則將買入訂單插入買入隊(duì)列中,由于買入隊(duì)列是按照價(jià)格與時(shí)間先后進(jìn)行排序,所以新插入的訂單會經(jīng)過一次排序插入到買入隊(duì)列的相應(yīng)位置订框。

相同的,當(dāng)撮合引擎接收到新的賣出訂單,則會到買入隊(duì)列的頭部査找是否存在符合價(jià)格規(guī)則的買入訂單,如果存在買入價(jià)格大于或等于賣出價(jià)格的訂單,則從訂單隊(duì)列中取出此訂單并撮合成一筆交易;如果買入隊(duì)列為空或隊(duì)列頭部不滿足價(jià)格關(guān)系,則將賣出訂單插入到賣出隊(duì)列中,由于賣出隊(duì)列也是按照價(jià)格與時(shí)間先后進(jìn)行排序的所以新插入的訂單會經(jīng)過一次排序插入到賣出隊(duì)列的相應(yīng)位置[23]。

5880aecebe788b86a16d4bdf634d025ca4a8d011

結(jié)合買賣訂單情況,撮合算法流程如圖2.3所示监氢。從圖2.3所示的撮合順序可知,買賣隊(duì)列的有序性是保證撮合順序的確定性的基礎(chǔ),并且撮合過程中每筆訂單都可以撮合出當(dāng)前最優(yōu)交易布蔗。

2.3 內(nèi)存撮合

當(dāng)前的數(shù)據(jù)庫撮合技術(shù)的性能低下的原因在于過多與數(shù)據(jù)庫交互,使得I/O很多,系統(tǒng)整體處理速度同時(shí)受數(shù)據(jù)庫事務(wù)邏輯約束。

本文釆用內(nèi)存撮合技術(shù),通過最大程度去除與數(shù)據(jù)庫的交互過程,將整個(gè)錯(cuò)和邏輯放在內(nèi)存中進(jìn)行(如圖2.4所示)浪腐。因此比數(shù)據(jù)庫撮合技術(shù)少了許多I/O交S 間,在性能上可以大幅提升撮合速度;例是內(nèi)存撮合的弊端就是由于內(nèi)存的易失性,.?服務(wù)器出現(xiàn)故障停機(jī)時(shí),所有的交易數(shù)據(jù)將會丟失,系統(tǒng)的可靠性以及一致性都相應(yīng)人幅降低纵揍。因此本文在提高內(nèi)存撮合技術(shù)可靠性的方面采用丫多機(jī)熱備份及分布式一致性技術(shù)作為補(bǔ)充,從而獲得內(nèi)存撮合技術(shù)的高性能以及數(shù)據(jù)庫撮合技術(shù)的數(shù)據(jù)持久性。

9769d413e8d1f7acc54b21898f6ff0667bd71f54

2.4 多機(jī)熱備份

由于內(nèi)存撮合技術(shù)在撮合引攀出現(xiàn)異常時(shí)的可靠性和一致性非常差,而金融交場系統(tǒng)因?yàn)槠錁I(yè)務(wù)特性,對服務(wù)小斷以及數(shù)據(jù)丟失的容忍度非常低,>//提高容錯(cuò)性,一般多采取的是多機(jī)熱條份技術(shù)议街。本文采用多機(jī)熱備份技術(shù),將一組撮合引樂部署成互為備份的撮合引擎集群,并且在同一時(shí)間內(nèi)只有一臺撮合引擎提供服務(wù)泽谨。當(dāng)-其中運(yùn)行這的一臺撮六引擎出現(xiàn)故障無法繼續(xù)正常工作 ,撮合引擎貓群會迅速檢測到這個(gè)故障,并選舉出一個(gè)備份撮合引擎接管故障撮合引舉的任務(wù)從而保證整個(gè)撮合系統(tǒng)的正常運(yùn)行多機(jī)熱備份技術(shù)的本質(zhì)就足針對服務(wù)器臨時(shí)故障所做的一種備份技術(shù),本文迎過采用多機(jī)熱備份技術(shù),來避免長 間的撮合服務(wù)中斷,保證撮合系統(tǒng)長期、可靠的服務(wù)。如閣2.5所示,通過將多臺撮合引擎進(jìn)行熱格份,從而保證在撮合引擎出現(xiàn)故障時(shí),會在可以接受的時(shí)間內(nèi)完成主機(jī)和備機(jī)之間的切換,由備份機(jī)提供無縫連續(xù)服務(wù)吧雹。

a1f102e34f60972c52acd1d726df94b1c22d91fb

通過釆用多機(jī)熱備份技術(shù),降低了單一內(nèi)存撮合引擎故障時(shí)系統(tǒng)不可用的問題,但仍舊無法提供100%的可用性,因?yàn)楫?dāng)出現(xiàn)大規(guī)模服務(wù)器集群故障時(shí),仍舊存在服務(wù)不可用的可能性,但在實(shí)際生產(chǎn)環(huán)境中,三臺互為備份的服務(wù)器就可以提供較高的可以用于生產(chǎn)環(huán)境的可靠性骨杂。

2.5 內(nèi)存狀態(tài)機(jī)復(fù)制

由于多機(jī)熱備份技術(shù)引入了多臺互為熱備份的撮合引擎,根據(jù)撮合系統(tǒng)設(shè)計(jì)以及撮合邏輯要求,需要保證服務(wù)器之間的數(shù)據(jù)一致,這就需要保證多服務(wù)器之間一致性,這也是本文難點(diǎn)之一。

本文提出一種內(nèi)存狀態(tài)機(jī)復(fù)制方案,即將撮合算法視作一個(gè)確定性狀態(tài)機(jī),將其復(fù)制多份并部署到撮合系統(tǒng)中的多臺撮合引擎中雄卷。每個(gè)撮合引擎副本從相同的初始狀態(tài)開始運(yùn)行,當(dāng)撮合系統(tǒng)收到網(wǎng)關(guān)發(fā)來的訂單時(shí),系統(tǒng)中的每個(gè)撮合引擎都會撮合這個(gè)訂單,并依次產(chǎn)生交易記錄,同時(shí)更新確定性撮合算法狀態(tài)機(jī)的獨(dú)立狀態(tài)搓蚪。通過這樣的方式,當(dāng)撮合系統(tǒng)正常運(yùn)轉(zhuǎn)時(shí),每個(gè)撮合引擎副本都會具有相同的結(jié)果狀態(tài);當(dāng)撮合系統(tǒng)出現(xiàn)故障或異常時(shí),撮合引擎就會出現(xiàn)狀態(tài)的不一致情況,換句話說一旦撮合系統(tǒng)的結(jié)果或狀態(tài)出現(xiàn)了不一致的情況就可以斷定系統(tǒng)出現(xiàn)了異常。

2.5.1 關(guān)鍵技術(shù)點(diǎn)

本文為了實(shí)現(xiàn)這樣的內(nèi)存狀態(tài)機(jī)復(fù)制撮合系統(tǒng),將撮合系統(tǒng)劃分為以下組成關(guān)鍵技術(shù)點(diǎn)

將確定性撮合算法狀態(tài)機(jī)服務(wù)部署到多個(gè)獨(dú)立撮合引擎

接收網(wǎng)關(guān)訂單,并作為確定性撮合算法狀態(tài)機(jī)的輸入

根據(jù)撮合算法需求,選擇一種訂單排序方式

每個(gè)撮合引擎對按照排序方式排序過的訂單進(jìn)行撮合

將確定性撮合算法狀態(tài)機(jī)輸出的交易記錄作為給用戶或數(shù)據(jù)庫的響應(yīng)

監(jiān)控撮合引擎副本的狀態(tài)或輸出的差別

2.5.2 實(shí)現(xiàn)方案

為實(shí)現(xiàn)基于內(nèi)存狀態(tài)機(jī)復(fù)制的撮合系統(tǒng),本文主要通過以下方案實(shí)現(xiàn)狀態(tài)機(jī)復(fù)制的關(guān)鍵技術(shù)點(diǎn):

采用原子多播解決撮合引擎訂單的可靠多播與全局有序性

采用基于無鎖訂單隊(duì)列的流水線撮合技術(shù)提供快速的訂單撮合

采用異步一致性持久化技術(shù)實(shí)現(xiàn)與數(shù)據(jù)庫的交互【3】

采用失效備援技術(shù)對撮合引擎集群進(jìn)行狀態(tài)監(jiān)控并保證系統(tǒng)的容錯(cuò)能;^[24][3115)采用進(jìn)度追趕技術(shù)解決將故障撮合引擎的恢復(fù)或新撮合引擎的加入

2.6 系統(tǒng)架構(gòu)

2.6.1 系統(tǒng)硬件體系架構(gòu)

典型的高可靠高性能撮合模型硬件架構(gòu)如圖2.6所示,系統(tǒng)由n臺客戶端丁鹉、N臺網(wǎng)關(guān)妒潭、X個(gè)產(chǎn)品集群(每個(gè)集群由2至3臺撮合引擎組成,負(fù)責(zé)響應(yīng)產(chǎn)品訂單的處理)、一個(gè)交易記錄數(shù)據(jù)庫和可選的監(jiān)視系統(tǒng)組成揣钦。其中客戶端連接到相應(yīng)網(wǎng)關(guān),網(wǎng)關(guān)負(fù)責(zé)接收客戶端提交的訂單,并根據(jù)訂單相關(guān)的金融產(chǎn)品類別,轉(zhuǎn)發(fā)到相對應(yīng)的產(chǎn)品集群雳灾。產(chǎn)品集群中所有撮合引擎均接收網(wǎng)關(guān)發(fā)送的訂單,根據(jù)撮合業(yè)務(wù)規(guī)則,將其撮合并回饋消息給網(wǎng)關(guān)和客戶端,同時(shí)將撮合生成的交易記錄持久化到交易記錄數(shù)據(jù)庫中。

3b2bacf558137691b3fcac814a7ffbab10bcb3f5

通過對產(chǎn)品集群進(jìn)行擴(kuò)充,增加撮合引擎數(shù)量,可以增強(qiáng)產(chǎn)品集群的可靠性冯凹。將不同金融產(chǎn)品轉(zhuǎn)發(fā)到不同的撮合產(chǎn)品集群中可以實(shí)現(xiàn)多產(chǎn)品高效并行撮合谎亩。

2.6.2 系統(tǒng)軟件體系架構(gòu)

62fe49423bff42f5b1ad1126c8bdeedafcbdc8d1

如圖2.7所示,高可靠高性能撮合模型主要由表示層、轉(zhuǎn)發(fā)層宇姚、業(yè)務(wù)層和數(shù)據(jù)層組成匈庭。其核心部分業(yè)務(wù)層主要由撮合引擎集群組成,每個(gè)撮合引擎采用原子多播將訂單定序后進(jìn)行撮合處理,并結(jié)合無鎖訂單隊(duì)列實(shí)現(xiàn)高效流水線撮合,最后結(jié)果寫入本地日志。整個(gè)業(yè)務(wù)流程由消息傳遞總線將消息反饋給轉(zhuǎn)發(fā)層浑劳。轉(zhuǎn)發(fā)層則根據(jù)產(chǎn)品轉(zhuǎn)發(fā)規(guī)則將訂單轉(zhuǎn)發(fā)給相應(yīng)撮合引擎集群;而撮合引擎將本地日志中的交易記錄讀取到異步持久化代理進(jìn)程中,并進(jìn)而與數(shù)據(jù)層的異步持久化寫入進(jìn)程通信,并最終持久化到數(shù)據(jù)庫中嚎花。本地日志增強(qiáng)了撮合系統(tǒng)數(shù)據(jù)的可靠性,在出現(xiàn)故障后,數(shù)據(jù)仍就可以從本地日志中恢復(fù);而界步的持久化機(jī)制則提高了數(shù)據(jù)的持久化吞吐率。

2.6.3 撮合引擎架構(gòu)

4e635a5d79dedb95d6614c5dc11585a8b9b24c8a

為了使系統(tǒng)可擴(kuò)展易維護(hù),撮合引擎由原子多播訂單定序模塊呀洲、撮合處理器模塊、交易記錄日志模塊和內(nèi)存數(shù)據(jù)組成,每個(gè)模塊根據(jù)功能業(yè)務(wù)劃分啼止。其中各部分主要有以下功能:交易訂單接收線程:負(fù)責(zé)從網(wǎng)關(guān)接收訂單,并完成原子多播定序流程道逗。交易訂單發(fā)送線程:將定序完成的訂單發(fā)送給相關(guān)撮合業(yè)務(wù)線程。交易信息發(fā)送線程:將訂單交易狀態(tài)反饋給網(wǎng)關(guān)献烦。外圍業(yè)務(wù)邏輯線程:進(jìn)行撮合數(shù)據(jù)的準(zhǔn)備處理,更新內(nèi)存訂單數(shù)據(jù)滓窍。撮合業(yè)務(wù)邏輯線程:根據(jù)確定性撮合算法撮合接收的訂單。交易行情發(fā)布線程:處理內(nèi)存行情信息并發(fā)布給網(wǎng)關(guān)巩那。同步日志寫線程:將訂單撮合產(chǎn)生的交易記錄同步持久化到本地日志文件吏夯。異步持久化代理進(jìn)程:異步將日志文件中的數(shù)據(jù)讀取并持久化到數(shù)據(jù)庫。訂單信息:存儲訂單的相關(guān)價(jià)格即横、數(shù)量噪生、用戶、限制东囚、類型和狀態(tài)等信息交易行情信息:撮合交易過程中的交易行情信息跺嗽。

2.6.4 系統(tǒng)接口

撮合系統(tǒng)主要為使用者提供訂單的下單和查詢服務(wù)、交易行情的實(shí)時(shí)反饋功能以及系統(tǒng)狀態(tài)的監(jiān)控查看服務(wù)。因此系統(tǒng)需要實(shí)現(xiàn)預(yù)留的接口主要包括:下單接口桨嫁、訂單查詢接口植兰、行情查詢接口、系統(tǒng)控制接口和運(yùn)行狀態(tài)查詢接口等璃吧。

2.7 小節(jié)

從總體設(shè)計(jì)入手,將撮合業(yè)務(wù)處理從數(shù)據(jù)庫遷移至內(nèi)存中,同時(shí)釆用多機(jī)熱備份技術(shù)解決內(nèi)存撮合技術(shù)的易失性問題,最終提出內(nèi)存狀態(tài)機(jī)復(fù)制方案作為高可靠髙性能撮合系統(tǒng)的實(shí)現(xiàn)路線楣导。撮合技術(shù)的具體實(shí)現(xiàn)將在下一章進(jìn)行詳細(xì)論述。

Q&A

Q:熱備的機(jī)制上畜挨。多個(gè)機(jī)器內(nèi)存上的狀態(tài)如何保證強(qiáng)一致性的筒繁?

A: 是熱備機(jī)器都是無狀態(tài),普洱茶按照不同品種產(chǎn)生不同撮合序列朦促,只要保證單品種有序膝晾,其他撮合機(jī)和本機(jī)沒有關(guān)系。

Q: 如果新加入一臺撮合引擎务冕,怎么判斷所有的撮合數(shù)據(jù)都同步到了這臺新的引擎上血当?

A: 委托單先要寫raid文件系統(tǒng),新增撮合引擎禀忆,也可以拿到數(shù)據(jù)臊旭。

Q: 根據(jù)你的描述,一個(gè)集群中為了判斷撮合引擎是否有故障箩退,至少應(yīng)該有3臺撮合引擎吧?

A:? zk來管理离熏,并且有風(fēng)控進(jìn)程監(jiān)控撮合進(jìn)度。

Q: 內(nèi)存狀態(tài)機(jī)的復(fù)制究竟是結(jié)果還是數(shù)據(jù)戴涝?

A: 數(shù)據(jù)滋戳,就是把處理到某個(gè)狀態(tài)的數(shù)據(jù)復(fù)制出來。

Q: 如果只有兩臺撮合引擎啥刻,如果對一個(gè)買入訂單奸鸯,發(fā)現(xiàn)結(jié)果不一致,如何判斷是哪一臺的故障可帽?

A: 撮合只有一臺進(jìn)行撮合娄涩,撮合結(jié)束才回寫數(shù)據(jù)庫產(chǎn)生行情和分發(fā)個(gè)個(gè)終端,用戶就可以看到自己委托單是否成交映跟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蓄拣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子努隙,更是在濱河造成了極大的恐慌球恤,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剃法,死亡現(xiàn)場離奇詭異碎捺,居然都是意外死亡路鹰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門收厨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晋柱,“玉大人,你說我怎么就攤上這事诵叁⊙憔海” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵拧额,是天一觀的道長碑诉。 經(jīng)常有香客問我,道長侥锦,這世上最難降的妖魔是什么进栽? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮恭垦,結(jié)果婚禮上快毛,老公的妹妹穿的比我還像新娘。我一直安慰自己番挺,他們只是感情好唠帝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著玄柏,像睡著了一般襟衰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粪摘,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天瀑晒,我揣著相機(jī)與錄音,去河邊找鬼徘意。 笑死瑰妄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的映砖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼灾挨,長吁一口氣:“原來是場噩夢啊……” “哼邑退!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劳澄,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤地技,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后秒拔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莫矗,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了作谚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片三娩。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖妹懒,靈堂內(nèi)的尸體忽然破棺而出雀监,到底是詐尸還是另有隱情,我是刑警寧澤眨唬,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布会前,位于F島的核電站,受9級特大地震影響匾竿,放射性物質(zhì)發(fā)生泄漏瓦宜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一岭妖、第九天 我趴在偏房一處隱蔽的房頂上張望临庇。 院中可真熱鬧,春花似錦区转、人聲如沸苔巨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侄泽。三九已至,卻和暖如春蜻韭,著一層夾襖步出監(jiān)牢的瞬間悼尾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工肖方, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闺魏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓俯画,卻偏偏與公主長得像析桥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子艰垂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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