微服務(wù)架構(gòu)中主流的配置中心對比分析?

本文轉(zhuǎn)載自 [Nacos 社區(qū) committer蜈亩,作者:風(fēng)卿]

為什么需要配置中心

配置實(shí)時生效

傳統(tǒng)的靜態(tài)配置方式要想修改某個配置只能修改之后重新發(fā)布應(yīng)用逝她,要實(shí)現(xiàn)動態(tài)性,可以選擇使用數(shù)據(jù)庫,通過定時輪詢訪問數(shù)據(jù)庫來感知配置的變化仅偎。輪詢頻率低感知配置變化的延時就長跨蟹,輪詢頻率高,感知配置變化的延時就短橘沥,但比較損耗性能窗轩,需要在實(shí)時性和性能之間做折中。配置中心專門針對這個業(yè)務(wù)場景座咆,兼顧實(shí)時性和一致性來管理動態(tài)配置痢艺。

配置管理流程

配置的權(quán)限管控、灰度發(fā)布介陶、版本管理堤舒、格式檢驗(yàn)和安全配置等一系列的配置管理相關(guān)的特性也是配置中心不可獲取的一部分。

開源配置中心基本介紹

目前市面上用的比較多的配置中心有:(按開源時間排序)

Disconf

2014年7月百度開源的配置管理中心哺呜,同樣具備配置的管理能力舌缤,不過目前已經(jīng)不維護(hù)了,最近的一次提交是兩年前了某残。

Spring Cloud Config

2014年9月開源国撵,Spring Cloud 生態(tài)組件,可以和Spring Cloud體系無縫整合玻墅。

Apollo

2016年5月介牙,攜程開源的配置管理中心,具備規(guī)范的權(quán)限澳厢、流程治理等特性环础。

Nacos

2018年6月,阿里開源的配置中心剩拢,也可以做DNS和RPC的服務(wù)發(fā)現(xiàn)线得。

配置中心核心概念的對比

由于Disconf不再維護(hù),下面對比一下Spring Cloud Config裸扶、Apollo和Nacos框都。Spring Cloud Config、Apollo和Nacos在配置管理領(lǐng)域的概念基本相同呵晨,但是也存在一些不同的點(diǎn)魏保,使用配置的過程中會涉及到一些比較重要的概念。

應(yīng)用

應(yīng)用是客戶端系統(tǒng)的基本單位摸屠,Spring Cloud Config 將應(yīng)用名稱和對應(yīng)Git中的文件名稱關(guān)聯(lián)起來了谓罗,這樣可以起到多個應(yīng)用配置相互隔離的作用。Apollo的配置都是在某個應(yīng)用下面的(除了公共配置)季二,也起到了多個應(yīng)用配置相互隔離的作用檩咱。Nacos的應(yīng)用概念比較弱揭措,只有一個用于區(qū)分配置的額外屬性,不過可以使用 Group 來做應(yīng)用字段刻蚯,可以起到隔離作用绊含。

集群

不同的環(huán)境可以搭建不同的集群,這樣可以起到物理隔離的作用炊汹,Spring Cloud Config躬充、Apollo、Nacos都支持多個集群讨便。

Label Profile & 環(huán)境 & 命名空間

Spring Cloud Config可以使用Label和Profile來做邏輯隔離充甚,Label指遠(yuǎn)程倉庫的分支,Profile類似Maven Profile可以區(qū)分環(huán)境霸褒,比如{application}-{profile}.properties伴找。

Nacos的命名空間和Apollo的環(huán)境一樣,是一個邏輯概念废菱,可以作為環(huán)境邏輯隔離技矮。Apollo中的命名空間指配置的名稱,具體的配置項(xiàng)指配置文件中的一個Property昙啄。

配置管理功能的對比

作為配置中心穆役,配置的整個管理流程應(yīng)該具備流程化能力。

灰度發(fā)布

配置的灰度發(fā)布是配置中心比較重要的功能梳凛,當(dāng)配置的變更影響比較大的時候,需要先在部分應(yīng)用實(shí)例中驗(yàn)證配置的變更是否符合預(yù)期梳杏,然后再推送到所有應(yīng)用實(shí)例韧拒。

Spring Cloud Config支持通過/bus/refresh端點(diǎn)的destination參數(shù)來指定要更新配置的機(jī)器,不過整個流程不夠自動化和體系化十性。

Apollo可以直接在控制臺上點(diǎn)灰度發(fā)布指定發(fā)布機(jī)器的IP叛溢,接著再全量發(fā)布,做得比較體系化劲适。

Nacos目前發(fā)布到0.9版本楷掉,還不支持灰度發(fā)布。

權(quán)限管理

配置的變更和代碼變更都是對應(yīng)用運(yùn)行邏輯的改變霞势,重要的配置變更常常會帶來核彈的效果烹植,對于配置變更的權(quán)限管控和審計(jì)能力同樣是配置中心重要的功能。

Spring Cloud Config依賴Git的權(quán)限管理能力愕贡,開源的GitHub權(quán)限控制可以分為Admin草雕、Write和Read權(quán)限,權(quán)限管理比較完善固以。

Apollo通過項(xiàng)目的維度來對配置進(jìn)行權(quán)限管理墩虹,一個項(xiàng)目的owner可以授權(quán)給其他用戶配置的修改發(fā)布權(quán)限嘱巾。

Nacos目前看還不具備權(quán)限管理能力。

版本管理&回滾

當(dāng)配置變更不符合預(yù)期的時候诫钓,需要根據(jù)配置的發(fā)布版本進(jìn)行回滾旬昭。Spring Cloud Config、Apollo和Nacos都具備配置的版本管理和回滾能力菌湃,可以在控制臺上查看配置的變更情況或進(jìn)行回滾操作稳懒。Spring Cloud Config通過Git來做版本管理,更方便些慢味。

配置格式校驗(yàn)

應(yīng)用的配置數(shù)據(jù)存儲在配置中心一般都會以一種配置格式存儲场梆,比如Properties、Json纯路、Yaml等或油,如果配置格式錯誤,會導(dǎo)致客戶端解析配置失敗引起生產(chǎn)故障驰唬,配置中心對配置的格式校驗(yàn)?zāi)軌蛴行Х乐谷藶殄e誤操作的發(fā)生顶岸,是配置中心核心功能中的剛需。
Spring Cloud Config使用Git叫编,目前還不支持格式檢驗(yàn)辖佣,格式的正確性依賴研發(fā)人員自己。
Apollo和Nacos都會對配置格式的正確性進(jìn)行檢驗(yàn)搓逾,可以有效防止人為錯誤卷谈。

監(jiān)聽查詢

當(dāng)排查問題或者進(jìn)行統(tǒng)計(jì)的時候,需要知道一個配置被哪些應(yīng)用實(shí)例使用到霞篡,以及一個實(shí)例使用到了哪些配置世蔗。
Spring Cloud Config使用Spring Cloud Bus推送配置變更,Spring Cloud Bus兼容 RabbitMQ朗兵、Kafka等污淋,支持查詢訂閱Topic和Consumer的訂閱關(guān)系。
Apollo可以通過灰度實(shí)例列表查看監(jiān)聽配置的實(shí)例列表余掖,但實(shí)例監(jiān)聽的配置(Apollo稱為命名空間)目前還沒有展示出來寸爆。

Nacos可以查看監(jiān)聽配置的實(shí)例,也可以查看實(shí)例監(jiān)聽的配置情況盐欺。

基本上赁豆,這三個產(chǎn)品都具備監(jiān)聽查詢能力,在我們自己的使用過程中找田,Nacos使用起來相對簡單歌憨,易用性相對更好些。

多環(huán)境

在實(shí)際生產(chǎn)中墩衙,配置中心常常需要涉及多環(huán)境或者多集群务嫡,業(yè)務(wù)在開發(fā)的時候可以將開發(fā)環(huán)境和生產(chǎn)環(huán)境分開甲抖,或者根據(jù)不同的業(yè)務(wù)線存在多個生產(chǎn)環(huán)境。如果各個環(huán)境之間的相互影響比較行牧濉(開發(fā)環(huán)境影響到生產(chǎn)環(huán)境穩(wěn)定性)准谚,配置中心可以通過邏輯隔離的方式支持多環(huán)境。

Spring Cloud Config支持Profile的方式隔離多個環(huán)境去扣,通過在Git上配置多個Profile的配置文件柱衔,客戶端啟動時指定Profile就可以訪問對應(yīng)的配置文件。

Apollo也支持多環(huán)境愉棱,在控制臺創(chuàng)建配置的時候就要指定配置所在的環(huán)境唆铐,客戶端在啟動的時候指定JVM參數(shù)ENV來訪問對應(yīng)環(huán)境的配置文件。

Nacos通過命名空間來支持多環(huán)境奔滑,每個命名空間的配置相互隔離艾岂,客戶端指定想要訪問的命名空間就可以達(dá)到邏輯隔離的作用。

多集群

當(dāng)對穩(wěn)定性要求比較高朋其,不允許各個環(huán)境相互影響的時候王浴,需要將多個環(huán)境通過多集群的方式進(jìn)行物理隔離。

Spring Cloud Config可以通過搭建多套Config Server梅猿,Git使用同一個Git的多個倉庫氓辣,來實(shí)現(xiàn)物理隔離。

Apollo可以搭建多套集群袱蚓,Apollo的控制臺和數(shù)據(jù)更新推送服務(wù)分開部署钞啸,控制臺部署一套就可以管控多個集群。

Nacos控制臺和后端配置服務(wù)是部署在一起的癞松,可以通過不同的域名切換來支持多集群爽撒。

配置實(shí)時推送對比

當(dāng)配置變更的時候,配置中心需要將配置實(shí)時推送到應(yīng)用客戶端响蓉。

Nacos和Apollo配置推送都是基于HTTP長輪詢,客戶端和配置中心建立HTTP長聯(lián)接哨毁,當(dāng)配置變更的的時候枫甲,配置中心把配置推送到客戶端。

Spring Cloud Config原生不支持配置的實(shí)時推送扼褪,需要依賴Git的WebHook想幻、Spring Cloud Bus和客戶端/bus/refresh端點(diǎn):

  • 基于Git的WebHook,配置變更觸發(fā)server端refresh

  • Server端接收到請求并發(fā)送給Spring Cloud Bus

  • Spring Cloud Bus接到消息并通知給客戶端

  • 客戶端接收到通知话浇,請求Server端獲取最新配置

整體比較下來脏毯,Nacos和Apollo在配置實(shí)時推送鏈路上是比較簡單高效的,Spring Cloud Config的配置推送引入Spring Cloud Bus幔崖,鏈路較長食店,比較復(fù)雜渣淤。

部署結(jié)構(gòu)&高可用對比

Spring Cloud Config

Spring Cloud Config包含config-server、Git和Spring Cloud Bus三大組件:

  • config-server提供給客戶端獲取配置;

  • Git用于存儲和修改配置;

  • Spring Cloud Bus通知客戶端配置變更;

本地測試模式下吉嫩,Spring Cloud Bus和config-server需要部署一個節(jié)點(diǎn)价认,Git使用GitHub就可以。在生產(chǎn)環(huán)境中自娩,Spring Cloud Config用踩,config-server需要部署至少兩個節(jié)點(diǎn)。Spring Cloud Bus如果使用RabbitMQ忙迁,普通集群模式至少需要兩個節(jié)點(diǎn)脐彩。

Git服務(wù)如果使用GitHub就不用考慮高可用問題,如果考慮到安全性要自建Git私有倉庫姊扔,整體的成本比較高惠奸。Web服務(wù)可以部署多節(jié)點(diǎn)支持高可用,由于Git有數(shù)據(jù)的一致性問題旱眯,可以通過以下的方式來支持高可用:

  • Git+Keepalived冷備模式晨川,當(dāng)主Git掛了可以馬上切到備Git;

  • Git多節(jié)點(diǎn)部署,存儲使用網(wǎng)絡(luò)文件系統(tǒng)或者通過DRBD實(shí)現(xiàn)多個Git節(jié)點(diǎn)的數(shù)據(jù)同步;

Apollo

Apollo分為MySQL删豺,Config Service共虑,Admin Service,Portal四個模塊:

  • MySQL存儲Apollo元數(shù)據(jù)和用戶配置數(shù)據(jù);

  • Config Service提供配置的讀取呀页、推送等功能妈拌,客戶端請求都是落到Config Service上;

  • Admin Service提供配置的修改、發(fā)布等功能蓬蝶,Portal操作的服務(wù)就是Admin Service;

  • Portal提供給用戶配置管理界面;

本地測試Config Service尘分,Admin Service,Portal三個模塊可以合并一起部署丸氛,MySQL單獨(dú)安裝并創(chuàng)建需要的表結(jié)構(gòu)培愁。在生產(chǎn)環(huán)境使用Apollo,Portal可以兩個節(jié)點(diǎn)單獨(dú)部署缓窜,穩(wěn)定性要求沒那么高的話定续,Config Service和Admin Service可以部署在一起,數(shù)據(jù)庫支持主備容災(zāi)禾锤。

Nacos

Nacos部署需要Nacos Service和MySQL:

  • Nacos對外提供服務(wù)私股,支持配置管理和服務(wù)發(fā)現(xiàn);

  • MySQL提供Nacos的數(shù)據(jù)持久化存儲;

單機(jī)模式下,Nacos可以使用嵌入式數(shù)據(jù)庫部署一個節(jié)點(diǎn)恩掷,就能啟動倡鲸。如果對MySQL比較熟悉,想要了解整體數(shù)據(jù)流向黄娘,可以安裝MySQL提供給Nacos數(shù)據(jù)持久化服務(wù)峭状。生產(chǎn)環(huán)境使用Nacos克滴,Nacos服務(wù)需要至少部署三個節(jié)點(diǎn),再加上MySQL主備宁炫。

整體來看

Nacos的部署結(jié)構(gòu)比較簡單偿曙,運(yùn)維成本較低。Apollo部署組件較多羔巢,運(yùn)維成本比Nacos高望忆。Spring Cloud Config生產(chǎn)高可用的成本最高。

多語言支持對比

一個公司的各個系統(tǒng)可能語言不盡相同竿秆,現(xiàn)在使用的比較多的比如C++启摄,Java,PHP幽钢,Python歉备,Nodejs,還有Go等匪燕。引入配置中心之后蕾羊,配置中心要想讓多語言的系統(tǒng)都能享受到動態(tài)配置的能力,需要支持多語言生態(tài)帽驯。

多語言支持

Spring Cloud服務(wù)于Java生態(tài)龟再,一開始只是針對Java微服務(wù)應(yīng)用,對于非Java應(yīng)用的微服務(wù)調(diào)用尼变,可以使用Sidecar提供了HTTP API利凑,但動態(tài)配置方面還不能很好的支持。
Apollo已經(jīng)支持了多種語言嫌术,并且提供了open API哀澈。其他不支持的語言,Apollo的接入成本相對較低度气。

Nacos支持主流的語言割按,例如Java、Go磷籍、Python哲虾、Nodejs、PHP等择示,也提供了open API。

遷移支持

國內(nèi)主流的互聯(lián)網(wǎng)公司仍是以Java為主晒旅,除了原生Java SDK栅盲,在對整個Java生態(tài),比如Spring Boot和Spring Cloud的支持上废恋,三個產(chǎn)品都是支持的谈秫。

Spring Cloud Config原生就支持Spring Boot和Spring Cloud扒寄,Nacos通過Spring Cloud for Alibaba支持Spring Boot和Spring Cloud生態(tài),符合Spring生態(tài)中的標(biāo)準(zhǔn)實(shí)現(xiàn)方式拟烫,可以無縫從Spring Cloud Conig遷移到Nacos该编。

Apollo支持Spring Boot和Spring Cloud項(xiàng)目,但是實(shí)現(xiàn)方式不同于標(biāo)準(zhǔn)硕淑,無法做無縫遷移课竣,從Spring Cloud遷移到Apollo,存在代碼改造和兼容性成本置媳。

性能對比

性能也是配置中心繞不過的一環(huán)于樟,在同樣的機(jī)器規(guī)格下,如果能支撐更大的業(yè)務(wù)量拇囊,勢必能替公司節(jié)省更多的資源成本迂曲,提高資源利用率。應(yīng)用客戶端對配置中心的接口操作有讀寥袭、寫和變更通知路捧,由于變更通知需要大量的客戶端實(shí)例,不好模擬測試場景传黄,下面僅對讀和寫操作做了測試杰扫。

硬件環(huán)境

Nacos和Apollo使用同樣的數(shù)據(jù)庫(32C128G),部署Server服務(wù)的機(jī)器使用的8C16G配置的容器尝江,磁盤是100G SSD涉波。

版本

Spring Cloud Config使用2.0.0.M9版本,Apollo使用1.2.0 release版本炭序,Nacos使用0.5版本啤覆。

單機(jī)讀場景

客戶端測試程序通過部署多臺機(jī)器,每臺機(jī)器開啟多個線程從配置中心讀取不同的配置(3000個)惭聂。Nacos QPS可以達(dá)到15000窗声,Apollo分為讀內(nèi)存緩存和從數(shù)據(jù)庫中讀兩種方式,從數(shù)據(jù)庫中讀能達(dá)到7500辜纲,從內(nèi)存讀緩存性能可以達(dá)到9000QPS笨觅。Spring Cloud Config使用jGit讀寫Git,由于有客戶端限制耕腾,單機(jī)讀能力被限制在7QPS见剩。

3節(jié)點(diǎn)讀場景

將配置中心的壓測節(jié)點(diǎn)數(shù)都部署成3個節(jié)點(diǎn)。Nacos QPS可以達(dá)到45000 QPS扫俺,Apollo讀內(nèi)存緩存可以達(dá)到27000 QPS苍苞。Nacos和Apollo由于讀場景各個節(jié)點(diǎn)是獨(dú)立的肩狂,基本就是單機(jī)讀場景的3倍關(guān)系座泳。Spring Cloud Config三個節(jié)點(diǎn)讀能力可以到達(dá)21QPS砸讳。

單機(jī)寫場景

同樣的方式瓷们,多臺機(jī)器同時在配置中心修改不同的配置。Nacos QPS可以達(dá)到1800冈欢,Apollo未使用默認(rèn)的數(shù)據(jù)庫連接池(10)QPS只能達(dá)到800 QPS(CPU未壓滿)歉铝,調(diào)整連接池至100可以達(dá)到1100 QPS(CPU壓滿)。Git在提交同一個項(xiàng)目的時候會加鎖凑耻,單機(jī)Git寫能在5QPS左右太示,Spring Cloud Config在使用的時候以一個項(xiàng)目作為數(shù)據(jù)源,寫能力受到Git限制拳话。

3節(jié)點(diǎn)寫場景

同樣的方式先匪,將配置中心的壓測節(jié)點(diǎn)數(shù)都部署成3個節(jié)點(diǎn)。Nacos QPS可以達(dá)到6000弃衍,Apollo可以達(dá)到3300 QPS(CPU壓滿)呀非,此時MySQL數(shù)據(jù)庫因?yàn)榕渲幂^高,未成為性能瓶頸镜盯。Spring Cloud Config三個節(jié)點(diǎn)時候岸裙,Git也是一個節(jié)點(diǎn),寫QPS為5速缆。

整體上來看降允,Nacos的讀寫性能最高,Apollo次之艺糜,Spring Cloud Config的依賴Git場景不適合開放的大規(guī)模自動化運(yùn)維API剧董。

功能特性對比總結(jié)

這里列一個表格總結(jié)一下三個產(chǎn)品的功能特點(diǎn)。

總的來說破停,Apollo和Nacos相對于Spring Cloud Config的生態(tài)支持更廣翅楼,在配置管理流程上做的更好。Apollo相對于Nacos在配置管理做的更加全面真慢,不過使用起來也要麻煩一些毅臊。Nacos使用起來相對比較簡潔,在對性能要求比較高的大規(guī)模場景更適合黑界。

此外管嬉,Nacos除了提供配置中心的功能,還提供了動態(tài)服務(wù)發(fā)現(xiàn)朗鸠、服務(wù)共享與管理的功能蚯撩,降低了服務(wù)化改造過程中的難度。

以上烛占,我們從產(chǎn)品功能求厕、使用體驗(yàn)、實(shí)施過程和性能 4 個緯度對Spring Cloud Config、Apollo和Nacos進(jìn)行對比呀癣。但對于一個開源項(xiàng)目的選型,除了以上這4個方面弦赖,項(xiàng)目上的人力投入(迭代進(jìn)度项栏、文檔的完整性)、社區(qū)的活躍度(issue的數(shù)量和解決速度蹬竖、Contributor數(shù)量沼沈、社群的交流頻次等)、社區(qū)的規(guī)范程度(免責(zé)說明币厕、安全性說明等)列另,這些可能才是用戶更關(guān)注的內(nèi)容。

寫在最后:

歡迎大家關(guān)注我的公眾號【風(fēng)平浪靜如碼】旦装,海量Java相關(guān)文章页衙,學(xué)習(xí)資料都會在里面更新,整理的資料也會放在里面阴绢。

覺得寫的還不錯的就點(diǎn)個贊店乐,加個關(guān)注唄!點(diǎn)關(guān)注呻袭,不迷路眨八,持續(xù)更新!W蟮纭廉侧!

海量面試、架構(gòu)資料分享

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末篓足,一起剝皮案震驚了整個濱河市段誊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纷纫,老刑警劉巖枕扫,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異辱魁,居然都是意外死亡烟瞧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門染簇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來参滴,“玉大人,你說我怎么就攤上這事锻弓±猓” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長暴心。 經(jīng)常有香客問我妓盲,道長,這世上最難降的妖魔是什么专普? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任悯衬,我火速辦了婚禮,結(jié)果婚禮上檀夹,老公的妹妹穿的比我還像新娘筋粗。我一直安慰自己,他們只是感情好炸渡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布娜亿。 她就那樣靜靜地躺著,像睡著了一般蚌堵。 火紅的嫁衣襯著肌膚如雪买决。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天辰斋,我揣著相機(jī)與錄音策州,去河邊找鬼。 笑死宫仗,一個胖子當(dāng)著我的面吹牛够挂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藕夫,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼孽糖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毅贮?” 一聲冷哼從身側(cè)響起办悟,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滩褥,沒想到半個月后病蛉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瑰煎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年铺然,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酒甸。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡魄健,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出插勤,到底是詐尸還是另有隱情沽瘦,我是刑警寧澤革骨,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站析恋,受9級特大地震影響良哲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绿满,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一臂外、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧喇颁,春花似錦、人聲如沸嚎货。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殖属。三九已至姐叁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洗显,已是汗流浹背外潜。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挠唆,地道東北人处窥。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像玄组,于是被迫代替她去往敵國和親滔驾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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