【Dubbo3終極特性】「云原生三中心架構(gòu)」帶你探索Dubbo3體系下的配置中心和元數(shù)據(jù)中心壶运、注冊(cè)中心的原理及開(kāi)發(fā)實(shí)戰(zhàn)(上)

Dubb3的應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)

Dubbo3提供了全新的應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)模型,該模型在設(shè)計(jì)與實(shí)現(xiàn)上區(qū)別于 Dubbo2 的接口級(jí)服務(wù)發(fā)現(xiàn)模型厂抽。

概括來(lái)說(shuō)需频,Dubbo3 引入的應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)主要有以下優(yōu)勢(shì)

  • 適配云原生微服務(wù)變革。云原生時(shí)代的基礎(chǔ)設(shè)施能力不斷向上釋放筷凤,像 Kubernetes 等平臺(tái)都集成了微服務(wù)概念抽象昭殉,Dubbo3 的應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)是適配各種微服務(wù)體系的通用模型。
  • 提升性能與可伸縮性藐守。支持超大規(guī)模集群的服務(wù)治理一直以來(lái)都是 Dubbo 的優(yōu)勢(shì)挪丢,通過(guò)引入應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)模型,從本質(zhì)上解決了注冊(cè)中心地址數(shù)據(jù)的存儲(chǔ)與推送壓力卢厂,相應(yīng)的 Consumer 側(cè)的地址計(jì)算壓力也成數(shù)量級(jí)下降乾蓬;集群規(guī)模也開(kāi)始變得可預(yù)測(cè)、可評(píng)估(與 RPC 接口數(shù)量無(wú)關(guān)慎恒,只與實(shí)例部署規(guī)模相關(guān))巢块。

下圖是 Dubbo2 的服務(wù)發(fā)現(xiàn)模型:Provider 注冊(cè)服務(wù)地址,Consumer 經(jīng)過(guò)注冊(cè)中心協(xié)調(diào)并發(fā)現(xiàn)服務(wù)地址巧号,進(jìn)而對(duì)地址發(fā)起通信,這是被絕大多數(shù)微服務(wù)框架的經(jīng)典服務(wù)發(fā)現(xiàn)流程姥闭。而 Dubbo2 的特殊之處在于丹鸿,它把 “RPC 接口”的信息也融合在了地址發(fā)現(xiàn)過(guò)程中,而這部分信息往往是和具體的業(yè)務(wù)定義密切相關(guān)的棚品。

image

而在接入云原生基礎(chǔ)設(shè)施后靠欢,基礎(chǔ)設(shè)施融入了微服務(wù)概念的抽象,容器化微服務(wù)被編排铜跑、調(diào)度的過(guò)程即完成了在基礎(chǔ)設(shè)施層面的注冊(cè)门怪。如下圖所示,基礎(chǔ)設(shè)施既承擔(dān)了注冊(cè)中心的職責(zé)锅纺,又完成了服務(wù)注冊(cè)的動(dòng)作掷空,而 “RPC 接口”這部分信息,由于與具體的業(yè)務(wù)相關(guān),不可能也不適合被基礎(chǔ)設(shè)施托管坦弟。

image

在這樣的場(chǎng)景下护锤,對(duì) Dubbo3 的服務(wù)注冊(cè)發(fā)現(xiàn)機(jī)制提出了兩個(gè)要求: Dubbo3 需要在原有服務(wù)發(fā)現(xiàn)流程中抽象出通用的、與業(yè)務(wù)邏輯無(wú)關(guān)的地址映射模型酿傍,并確保這部分模型足夠合理烙懦,以支持將地址的注冊(cè)行為和存儲(chǔ)委托給下層基礎(chǔ)設(shè)施 Dubbo3 特有的業(yè)務(wù)接口同步機(jī)制,是 Dubbo3 需要保留的優(yōu)勢(shì)赤炒,需要在 Dubbo3 中定義的新地址模型之上血久,通過(guò)框架內(nèi)的自有機(jī)制予以解決。

這樣設(shè)計(jì)的全新的服務(wù)發(fā)現(xiàn)模型塔逃,在架構(gòu)兼容性密强、可伸縮性上都給 Dubbo3 帶來(lái)了更大的優(yōu)勢(shì)。

image

在架構(gòu)兼容性上癣朗,如上文所述拾因,Dubbo3 復(fù)用下層基礎(chǔ)設(shè)施的服務(wù)抽象能力成為了可能;另一方面旷余,如 Spring Cloud 等業(yè)界其它微服務(wù)解決方案也沿用這種模型绢记, 在打通了地址發(fā)現(xiàn)之后,使得用戶探索用 Dubbo 連接異構(gòu)的微服務(wù)體系成為了一種可能正卧。

Dubbo3 服務(wù)發(fā)現(xiàn)模型更適合構(gòu)建可伸縮的服務(wù)體系蠢熄,這點(diǎn)要如何理解? 這里先舉個(gè)簡(jiǎn)單的例子炉旷,來(lái)直觀的對(duì)比 Dubbo2 與 Dubbo3 在地址發(fā)現(xiàn)流程上的數(shù)據(jù)流量變化:假設(shè)一個(gè)微服務(wù)應(yīng)用定義了 100 個(gè)接口(Dubbo 中的服務(wù))签孔, 則需要往注冊(cè)中心中注冊(cè) 100 個(gè)服務(wù),如果這個(gè)應(yīng)用被部署在了 100 臺(tái)機(jī)器上窘行,那這 100 個(gè)服務(wù)總共會(huì)產(chǎn)生 100 * 100 = 10000 個(gè)虛擬節(jié)點(diǎn)饥追;而同樣的應(yīng)用, 對(duì)于 Dubbo3 來(lái)說(shuō)罐盔,新的注冊(cè)發(fā)現(xiàn)模型只需要 1 個(gè)服務(wù)(只和應(yīng)用有關(guān)和接口無(wú)關(guān))但绕, 只注冊(cè)和機(jī)器實(shí)例數(shù)相等的 1 * 100 = 100 個(gè)虛擬節(jié)點(diǎn)到注冊(cè)中心。 在這個(gè)簡(jiǎn)單的示例中惶看,Dubbo 所注冊(cè)的地址數(shù)量下降到了原來(lái)的 1 / 100捏顺,對(duì)于注冊(cè)中心、訂閱方的存儲(chǔ)壓力都是一個(gè)極大的釋放纬黎。更重要的是幅骄, 地址發(fā)現(xiàn)容量徹底與業(yè)務(wù) RPC 定義解耦開(kāi)來(lái),整個(gè)集群的容量評(píng)估對(duì)運(yùn)維來(lái)說(shuō)將變得更加透明:部署多少臺(tái)機(jī)器就會(huì)有多大負(fù)載本今,不會(huì)像 Dubbo2 一樣拆座, 因?yàn)闃I(yè)務(wù) RPC 重構(gòu)就會(huì)影響到整個(gè)集群服務(wù)發(fā)現(xiàn)的穩(wěn)定性主巍。

Dubbo3部署架構(gòu)

本文主要側(cè)重介紹在云原生背景下的部署架構(gòu),主要體現(xiàn)在基礎(chǔ)設(shè)施(Kubernetes懂拾、Service Mesh等)會(huì)承擔(dān)更多的職責(zé)煤禽,三中心化體系結(jié)構(gòu),如:注冊(cè)中心岖赋、元數(shù)據(jù)中心檬果、配置中心等的職責(zé)被集成,促使架構(gòu)變得更加優(yōu)秀唐断、資源優(yōu)化的更加徹底选脊。通過(guò)分析這些中心化的組件能讓我們更容易理解Dubbo3對(duì)應(yīng)云原生模式下的工作原理。

image

從上面的圖中脸甘,我們可以看出來(lái)恳啥,整體的的Dubbo的Rpc框架中,除了對(duì)應(yīng)的Consumer消費(fèi)端丹诀、Provider服務(wù)提供端钝的,Registry注冊(cè)中心這些之前dubbo中已經(jīng)定義的中心化組件之外,還多出了config-center铆遭、metadata這兩個(gè)中心硝桩。

Dubbo3的三中心化體系

作為一個(gè)微服務(wù)框架,Dubbo SDK跟隨著微服務(wù)組件被部署在分布式集群各個(gè)位置枚荣,為了在分布式環(huán)境下實(shí)現(xiàn)各個(gè)微服務(wù)組件間的協(xié)作碗脊, Dubbo3擴(kuò)展了一些中心化組件,這包括:

  • 注冊(cè)中心
    • 協(xié)調(diào)Consumer消費(fèi)者與Provider服務(wù)提供者之間的地址注冊(cè)與發(fā)現(xiàn)橄妆。
  • 配置中心
    • 存儲(chǔ)Dubbo啟動(dòng)階段的全局配置衙伶,保證配置的跨環(huán)境共享與全局一致性
    • 負(fù)責(zé)服務(wù)治理規(guī)則(路由規(guī)則、動(dòng)態(tài)配置等)的存儲(chǔ)與推送害碾。
  • 元數(shù)據(jù)中心
    • 接收Provider服務(wù)端上報(bào)的服務(wù)接口元數(shù)據(jù)矢劲,為Admin等控制臺(tái)提供運(yùn)維能力(如服務(wù)測(cè)試、接口文檔等)
    • 作為服務(wù)發(fā)現(xiàn)機(jī)制的補(bǔ)充慌随,提供額外的接口/方法級(jí)別配置信息的同步能力卧须,相當(dāng)于注冊(cè)中心的額外擴(kuò)展。

注意:以上三個(gè)中心體系并不是運(yùn)行Dubbo的必要條件儒陨,用戶完全可以根據(jù)自身業(yè)務(wù)情況決定只啟用其中一個(gè)或多個(gè)(甚至不需要任何中心,直連模式笋籽,當(dāng)然生產(chǎn)不推薦)蹦漠,以達(dá)到簡(jiǎn)化部署的目的。

接下來(lái)我們將會(huì)針對(duì)于這三個(gè)中心分別給大家去詳細(xì)講解說(shuō)明一下车海。

注冊(cè)中心

大多數(shù)情況下笛园,我們基本都會(huì)以獨(dú)立的注冊(cè)中心以開(kāi)始Dubbo服務(wù)開(kāi)發(fā)隘击,而配置中心、元數(shù)據(jù)中心則會(huì)在微服務(wù)演進(jìn)的過(guò)程中逐步的按需被引入進(jìn)來(lái)研铆。

image

注冊(cè)中心扮演著非常重要的角色埋同,它承載著服務(wù)注冊(cè)服務(wù)發(fā)現(xiàn)的職責(zé)。目前Dubbo支持以下兩種粒度的服務(wù)發(fā)現(xiàn)服務(wù)注冊(cè)棵红,分別是接口級(jí)別應(yīng)用級(jí)別凶赁,注冊(cè)中心可以按需進(jìn)行部署:

直連模式

在最初的Dubbo SDK使用過(guò)程中,如果僅僅提供直連模式的RPC服務(wù)逆甜,不需要部署注冊(cè)中心虱肄。

注冊(cè)模式

無(wú)論是接口級(jí)別還是應(yīng)用級(jí)別,如果需要Dubbo SDK自身來(lái)做服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)交煞,則可以選擇部署注冊(cè)中心咏窿,在Dubbo中集成對(duì)應(yīng)的注冊(cè)中心。

Mesh模式

在Dubbo + Mesh 的場(chǎng)景下素征,隨著Dubbo服務(wù)注冊(cè)能力的弱化集嵌,Dubbo內(nèi)的注冊(cè)中心也不再是必選項(xiàng),其職責(zé)開(kāi)始被控制面取代御毅,如果采用了Dubbo + Mesh的部署方式根欧,無(wú)論是ThinSDK的mesh方式還是Proxyless的mesh方式,都不再需要獨(dú)立部署注冊(cè)中心亚享。

注冊(cè)中心不依賴于配置中心和元數(shù)據(jù)中心

對(duì)于組成而言注冊(cè)中心不完全依賴于配置中心和元數(shù)據(jù)中心咽块,如下圖所示。

image

沒(méi)有部署配置中心和元數(shù)據(jù)中心欺税,在Dubbo中會(huì)默認(rèn)將注冊(cè)中心的實(shí)例同時(shí)作為配置中心和元數(shù)據(jù)中心侈沪,這是Dubbo的默認(rèn)行為,如果確實(shí)不需要配置中心或者元數(shù)據(jù)中心的能力晚凿,可在配置中關(guān)閉亭罪,在注冊(cè)中心的配置中有兩個(gè)配置分別為use-as-config-center和use-as-metadata-center,將配置置為false即可歼秽。

元數(shù)據(jù)中心

元數(shù)據(jù)中心并不是在Dubbo3才推出的应役,而是在2.7.x版本就開(kāi)始支持,隨著應(yīng)用級(jí)別的服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)在Dubbo中落地燥筷,元數(shù)據(jù)中心也變的越來(lái)越重要箩祥,如下圖所示。

image

上面圖中不配備配置中心肆氓,意味著可以不需要全局管理配置的能力袍祖。該圖中不配備注冊(cè)中心,意味著可能采用了Dubbo mesh的方案谢揪,也可能不需要進(jìn)行服務(wù)注冊(cè)蕉陋,僅僅接收直連模式的服務(wù)調(diào)用捐凭。在以下幾種情況下會(huì)需要部署元數(shù)據(jù)中心:

(場(chǎng)景1)老版本Dubbo遷移到新版本Dubbo3的場(chǎng)景

對(duì)于一個(gè)原先采用老版本Dubbo搭建的應(yīng)用服務(wù),在遷移到Dubbo3時(shí)凳鬓,Dubbo3會(huì)需要一個(gè)元數(shù)據(jù)中心來(lái)維護(hù)RPC服務(wù)與應(yīng)用的映射關(guān)系(即接口與應(yīng)用的映射關(guān)系)茁肠。

應(yīng)用級(jí)別的服務(wù)發(fā)現(xiàn)和服務(wù)注冊(cè)

以往的“接口 —— 實(shí)例列表”結(jié)構(gòu)的數(shù)據(jù)組織形式,如下圖所示缩举。

image

如果采用了應(yīng)用級(jí)別的服務(wù)發(fā)現(xiàn)和服務(wù)注冊(cè)垦梆,在注冊(cè)中心中將采用”應(yīng)用 —— 實(shí)例列表”結(jié)構(gòu)的數(shù)據(jù)組織形式,如下圖所示蚁孔。

image

以往用接口級(jí)別的服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)的應(yīng)用服務(wù)在遷移到應(yīng)用級(jí)別時(shí)奶赔,得不到接口與應(yīng)用之間的對(duì)應(yīng)關(guān)系,從而無(wú)法從注冊(cè)中心得到實(shí)例列表信息杠氢,所以Dubbo為了兼容這種場(chǎng)景站刑,在Provider端啟動(dòng)時(shí),會(huì)往元數(shù)據(jù)中心存儲(chǔ)接口與應(yīng)用的映射關(guān)系鼻百。

(場(chǎng)景2)讓注冊(cè)中心更加聚焦于地址的發(fā)現(xiàn)和推送能力

為了讓注冊(cè)中心更加聚焦于地址的發(fā)現(xiàn)和推送能力绞旅,減輕注冊(cè)中心的負(fù)擔(dān),元數(shù)據(jù)中心承載了所有的服務(wù)元數(shù)據(jù)温艇、大量接口/方法級(jí)別配置信息等因悲,無(wú)論是接口粒度還是應(yīng)用粒度的服務(wù)發(fā)現(xiàn)和注冊(cè),元數(shù)據(jù)中心都起到了重要的作用勺爱。

如果有以上兩種需求晃琳,都可以選擇部署元數(shù)據(jù)中心,并通過(guò)Dubbo的配置來(lái)集成該元數(shù)據(jù)中心琐鲁。元數(shù)據(jù)中心并不依賴于注冊(cè)中心和配置中心卫旱,用戶可以自由選擇是否集成和部署元數(shù)據(jù)中心,如下圖所示:

image

可以看到消費(fèi)者會(huì)元數(shù)據(jù)中心拉取到接口和應(yīng)用服務(wù)的關(guān)系围段。配合著注冊(cè)中心拉取到應(yīng)用與服務(wù)實(shí)例之間的關(guān)系顾翼,兩者組成了更加優(yōu)雅地格式和優(yōu)化了存儲(chǔ)空間。

image
  • 注冊(cè)中心-存儲(chǔ):應(yīng)用名稱->接口服務(wù)實(shí)例地址
  • 元數(shù)據(jù)中心-存儲(chǔ):應(yīng)用名稱->接口信息+參數(shù)信息

兩者可以直接整合為應(yīng)用名稱->接口服務(wù)實(shí)例地址->接口信息

配置中心

配置中心與其他兩大中心不同奈泪,它無(wú)關(guān)于接口級(jí)還是應(yīng)用級(jí)适贸,它與接口并沒(méi)有對(duì)應(yīng)關(guān)系,它僅僅與配置數(shù)據(jù)有關(guān)涝桅,即使沒(méi)有部署注冊(cè)中心和元數(shù)據(jù)中心拜姿,配置中心也能直接被接入到Dubbo應(yīng)用服務(wù)中

在整個(gè)部署架構(gòu)中冯遂,整個(gè)集群內(nèi)的實(shí)例(無(wú)論是Provider還是Consumer)都將會(huì)共享該配置中心集群中的配置砾隅,如下圖所示

image
  • 該圖中不配備注冊(cè)中心,意味著可能采用了Dubbo mesh的方案债蜜,也可能不需要進(jìn)行服務(wù)注冊(cè)晴埂,僅僅接收直連模式的服務(wù)調(diào)用。

  • 該圖中不配備元數(shù)據(jù)中心寻定,意味著Consumer可以從Provider暴露的MetadataService獲取服務(wù)元數(shù)據(jù)儒洛,從而實(shí)現(xiàn)RPC調(diào)用。

保證三大中心高可用的部署架構(gòu)

雖然三大中心已不再是Dubbo應(yīng)用服務(wù)所必須的狼速,但是在真實(shí)的生產(chǎn)環(huán)境中琅锻,一旦已經(jīng)集成并且部署了該三大中心,三大中心還是會(huì)面臨可用性問(wèn)題向胡,Dubbo需要支持三大中心的高可用方案恼蓬。在Dubbo中就支持多注冊(cè)中心、多元數(shù)據(jù)中心僵芹、多配置中心处硬,來(lái)滿足同城多活、兩地三中心拇派、異地多活等部署架構(gòu)模式的需求荷辕。

Dubbo SDK對(duì)三大中心都支持了Multiple模式。

  • 多注冊(cè)中心:Dubbo 支持多注冊(cè)中心件豌,即一個(gè)接口或者一個(gè)應(yīng)用可以被注冊(cè)到多個(gè)注冊(cè)中心中疮方,比如可以注冊(cè)到ZK集群和Nacos集群中,Consumer也能夠從多個(gè)注冊(cè)中心中進(jìn)行訂閱相關(guān)服務(wù)的地址信息茧彤,從而進(jìn)行服務(wù)發(fā)現(xiàn)骡显。通過(guò)支持多注冊(cè)中心的方式來(lái)保證其中一個(gè)注冊(cè)中心集群出現(xiàn)不可用時(shí)能夠切換到另一個(gè)注冊(cè)中心集群,保證能夠正常提供服務(wù)以及發(fā)起服務(wù)調(diào)用曾掂。這也能夠滿足注冊(cè)中心在部署上適應(yīng)各類(lèi)高可用的部署架構(gòu)模式惫谤。

  • 多配置中心:Dubbo支持多配置中心,來(lái)保證其中一個(gè)配置中心集群出現(xiàn)不可用時(shí)能夠切換到另一個(gè)配置中心集群遭殉,保證能夠正常從配置中心獲取全局的配置石挂、路由規(guī)則等信息。這也能夠滿足配置中心在部署上適應(yīng)各類(lèi)高可用的部署架構(gòu)模式险污。

  • 多元數(shù)據(jù)中心:Dubbo 支持多元數(shù)據(jù)中心:用于應(yīng)對(duì)容災(zāi)等情況導(dǎo)致某個(gè)元數(shù)據(jù)中心集群不可用痹愚,此時(shí)可以切換到另一個(gè)元數(shù)據(jù)中心集群,保證元數(shù)據(jù)中心能夠正常提供有關(guān)服務(wù)元數(shù)據(jù)的管理能力蛔糯。

拿注冊(cè)中心舉例拯腮,下面是一個(gè)多活場(chǎng)景的部署架構(gòu)示意圖:

image

支持的組件與部署架構(gòu)

Dubbo 實(shí)現(xiàn)普遍支持以下產(chǎn)品或部署架構(gòu),具體多語(yǔ)言 SDK 實(shí)現(xiàn)可能有差異蚁飒。

注冊(cè)中心

  • Zookeeper
  • Nacos
  • Kubernetes

元數(shù)據(jù)中心

  • Zookeeper
  • Nacos
  • Redis

配置中心

  • Zookeeper
  • Nacos
  • Redis
  • Apollo

Mesh

  • 數(shù)據(jù)面 Envoy
  • 控制面 Istio

接下來(lái)后面的文章會(huì)為大家實(shí)戰(zhàn)一下如何進(jìn)行配置和設(shè)置對(duì)應(yīng)的注冊(cè)中心动壤、配置中心和元數(shù)據(jù)中心。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淮逻,一起剝皮案震驚了整個(gè)濱河市琼懊,隨后出現(xiàn)的幾起案子阁簸,更是在濱河造成了極大的恐慌,老刑警劉巖哼丈,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件启妹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡醉旦,警方通過(guò)查閱死者的電腦和手機(jī)饶米,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)车胡,“玉大人檬输,你說(shuō)我怎么就攤上這事⌒偌” “怎么了丧慈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羹饰。 經(jīng)常有香客問(wèn)我伊滋,道長(zhǎng),這世上最難降的妖魔是什么队秩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任笑旺,我火速辦了婚禮,結(jié)果婚禮上馍资,老公的妹妹穿的比我還像新娘筒主。我一直安慰自己,他們只是感情好鸟蟹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布乌妙。 她就那樣靜靜地躺著,像睡著了一般建钥。 火紅的嫁衣襯著肌膚如雪藤韵。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天熊经,我揣著相機(jī)與錄音泽艘,去河邊找鬼。 笑死镐依,一個(gè)胖子當(dāng)著我的面吹牛匹涮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播槐壳,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼然低,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起雳攘,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤带兜,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吨灭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體鞋真,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年沃于,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片海诲。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡繁莹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出特幔,到底是詐尸還是另有隱情咨演,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布蚯斯,位于F島的核電站薄风,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拍嵌。R本人自食惡果不足惜遭赂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望横辆。 院中可真熱鬧撇他,春花似錦、人聲如沸狈蚤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脆侮。三九已至锌畸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間靖避,已是汗流浹背潭枣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筋蓖,地道東北人卸耘。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像粘咖,于是被迫代替她去往敵國(guó)和親蚣抗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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