??一共81個,開源大數(shù)據(jù)處理工具匯總(下)季稳,包括日志收集系統(tǒng)/集群管理/RPC等

//
一共81個擅这,開源大數(shù)據(jù)處理工具匯總(下),包括日志收集系統(tǒng)/集群管理/RPC等 | 36大數(shù)據(jù)
http://www.36dsj.com/archives/25042

接上一部分:一共81個景鼠,開源大數(shù)據(jù)處理工具匯總(上)仲翎,第二部分主要收集整理的內(nèi)容主要有日志收集系統(tǒng)、消息系統(tǒng)莲蜘、分布式服務(wù)谭确、集群管理、RPC票渠、基礎(chǔ)設(shè)施逐哈、搜索引擎、Iaas和監(jiān)控管理等大數(shù)據(jù)開源工具问顷。

日志收集系統(tǒng)
一昂秃、Facebook Scribe

scribe

貢獻者:Facebook
簡介:Scribe是Facebook開源的日志收集系統(tǒng),在Facebook內(nèi)部已經(jīng)得到大量的應(yīng)用杜窄。它能夠從各種日志源上收集日志肠骆,存儲到一個中央存儲系統(tǒng)(可以是NFS,分布式文件系統(tǒng)等)上塞耕,以便于進行集中統(tǒng)計分析處理蚀腿。它為日志的“分布式收集,統(tǒng)一處理”提供了一個可擴展的扫外,高容錯的方案莉钙。當中央存儲系統(tǒng)的網(wǎng)絡(luò)或者機器出現(xiàn)故障時,scribe會將日志轉(zhuǎn)存到本地或者另一個位置筛谚,當中央存儲系統(tǒng)恢復(fù)后磁玉,scribe會將轉(zhuǎn)存的日志重新傳輸給中央存儲系統(tǒng)。其通常與Hadoop結(jié)合使用驾讲,scribe用于向HDFS中push日志蚊伞,而Hadoop通過MapReduce作業(yè)進行定期處理。
Scribe的系統(tǒng)架構(gòu)
scribe

代碼托管https://github.com/facebook/scribe
二吮铭、Cloudera Flume
Cloudera Flume

貢獻者Cloudera
簡介:Flume是Cloudera提供的一個高可用的时迫,高可靠的,分布式的海量日志采集谓晌、聚合和傳輸?shù)南到y(tǒng)掠拳,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)扎谎;同時碳想,F(xiàn)lume提供對數(shù)據(jù)進行簡單處理烧董,并寫到各種數(shù)據(jù)接受方(可定制)的能力。
Flume提供了從console(控制臺)胧奔、RPC(Thrift-RPC)逊移、text(文件)、tail(UNIX tail)龙填、syslog(syslog日志系統(tǒng)胳泉,支持TCP和UDP等2種模式),exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力岩遗。
當前Flume有兩個版本Flume 0.9X版本的統(tǒng)稱Flume-og扇商,F(xiàn)lume1.X版本的統(tǒng)稱Flume-ng。由于Flume-ng經(jīng)過重大重構(gòu)宿礁,與Flume-og有很大不同案铺,使用時請注意區(qū)分。
Cloudera Flume構(gòu)架
Cloudera Flume

官網(wǎng)http://flume.apache.org/
三梆靖、logstash
簡介:logstash 是一個應(yīng)用程序日志控汉、事件的傳輸、處理返吻、管理和搜索的平臺姑子。你可以用它來統(tǒng)一對應(yīng)用程序日志進行收集管理,提供 Web 接口用于查詢和統(tǒng)計测僵。他可以對你的日志進行收集街佑、分析,并將其存儲供以后使用(如捍靠,搜索)腹忽,您可以使用它笨蚁。說到搜索类早,logstash帶有一個web界面僵芹,搜索和展示所有日志侠讯。
logstash

官網(wǎng)http://www.logstash.net/
四澳盐、kibana
簡介:Kibana 是一個為 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口榆综∧酰可使用它對日志進行高效的搜索璃搜、可視化拖吼、分析等各種操作。kibana 也是一個開源和免費的工具这吻,他可以幫助您匯總吊档、分析和搜索重要數(shù)據(jù)日志并提供友好的web界面。他可以為 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面唾糯。
主頁http://kibana.org/
代碼托管https://github.com/rashidkpc/Kibana/downloads
消息系統(tǒng)
一怠硼、StormMQ
簡介:MQMessageQueue消息隊列產(chǎn)品 StormMQ鬼贱,是一種服務(wù)程序。
官網(wǎng)http://stormmq.com/
二香璃、ZeroMQ
簡介:這是個類似于Socket的一系列接口这难,他跟Socket的區(qū)別是:普通的socket是端到端的(1:1的關(guān)系),而ZMQ卻是可以N:M 的關(guān)系葡秒,人們對BSD套接字的了解較多的是點對點的連接姻乓,點對點連接需要顯式地建立連接、銷毀連接眯牧、選擇協(xié)議(TCP/UDP)和處理錯誤等蹋岩,而ZMQ屏蔽了這些細節(jié),讓你的網(wǎng)絡(luò)編程更為簡單学少。ZMQ用于node與node間的通信剪个,node可以是主機或者是進程。
引用官方的說法: “ZMQ(以下ZeroMQ簡稱ZMQ)是一個簡單好用的傳輸層版确,像框架一樣的一個socket library禁偎,他使得Socket編程更加簡單、簡潔和性能更高阀坏。是一個消息處理隊列庫如暖,可在多個線程、內(nèi)核和主機盒之間彈性伸縮忌堂。ZMQ的明確目標是“成為標準網(wǎng)絡(luò)協(xié)議棧的一部分盒至,之后進入Linux內(nèi)核”。現(xiàn)在還未看到它們的成功士修。但是枷遂,它無疑是極具前景的、并且是人們更加需要的“傳統(tǒng)”BSD套接字之上的一 層封裝棋嘲。ZMQ讓編寫高性能網(wǎng)絡(luò)應(yīng)用程序極為簡單和有趣酒唉。”
官網(wǎng)http://zeromq.org/
三沸移、RabbitMQ
簡介:RabbitMQ是一個受歡迎的消息代理痪伦,通常用于應(yīng)用程序之間或者程序的不同組件之間通過消息來進行集成。本文簡單介紹了如何使用 RabbitMQ雹锣,假定你已經(jīng)配置好了rabbitmq服務(wù)器网沾。
RabbitMQ

RabbitMQ是用Erlang,對于主要的編程語言都有驅(qū)動或者客戶端蕊爵。我們這里要用的是Java辉哥,所以先要獲得Java客戶端。
像RabbitMQ這樣的消息代理可用來模擬不同的場景,例如點對點的消息分發(fā)或者訂閱/推送醋旦。我們的程序足夠簡單恒水,有兩個基本的組件,一個生產(chǎn)者用于產(chǎn)生消息饲齐,還有一個消費者用來使用產(chǎn)生的消息寇窑。
官網(wǎng)https://www.rabbitmq.com/
四、Apache ActiveMQ
簡介:ActiveMQ 是Apache出品箩张,最流行的甩骏,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規(guī)范的 JMS Provider實現(xiàn)先慷,盡管JMS規(guī)范出臺已經(jīng)是很久的事情了饮笛,但是JMS在當今的J2EE應(yīng)用中間仍然扮演著特殊的地位。
Apache ActiveMQ

特性:
⒈ 多種語言和協(xié)議編寫客戶端论熙。語言: Java,C,C++,C#,Ruby,Perl,Python,PHP福青。應(yīng)用協(xié)議: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4規(guī)范 (持久化,XA消息脓诡,事務(wù))
⒊ 對Spring的支持无午,ActiveMQ可以很容易內(nèi)嵌到使用Spring的系統(tǒng)里面去,而且也支持Spring2.0的特性
⒋ 通過了常見J2EE服務(wù)器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試祝谚,其中通過JCA 1.5 resource adaptors的配置宪迟,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業(yè)服務(wù)器上
⒌ 支持多種傳送協(xié)議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
⒍ 支持通過JDBC和journal提供高速的消息持久化
⒎ 從設(shè)計上保證了高性能的集群,客戶端-服務(wù)器交惯,點對點
⒏ 支持Ajax
⒐ 支持與Axis的整合
⒑ 可以很容易得調(diào)用內(nèi)嵌JMS provider次泽,進行測試
官網(wǎng)http://activemq.apache.org/
五、Jafka
貢獻者:LinkedIn
簡介:Jafka 是一個開源的席爽、高性能的意荤、跨語言分布式消息系統(tǒng),使用GitHub托管只锻。Jafka 最早是由Apache孵化的Kafka(由LinkedIn捐助給Apache)克隆而來玖像。由于是一個開放式的數(shù)據(jù)傳輸協(xié)議,因此除了Java開發(fā)語言受到支持齐饮,Python捐寥、Ruby、C沈矿、C++等其他語言也能夠很好的得到支持上真。
特性:
1咬腋、消息持久化非掣牛快,服務(wù)端存儲消息的開銷為O(1)根竿,并且基于文件系統(tǒng)陵像,能夠持久化TB級的消息而不損失性能就珠。
2、吞吐量取決于網(wǎng)絡(luò)帶寬醒颖。
3妻怎、完全的分布式系統(tǒng),broker泞歉、producer逼侦、consumer都原生自動支持分布式。自動實現(xiàn)復(fù)雜均衡腰耙。
4榛丢、內(nèi)核非常小,整個系統(tǒng)(包括服務(wù)端和客戶端)只有一個272KB的jar包挺庞,內(nèi)部機制也不復(fù)雜晰赞,適合進行內(nèi)嵌或者二次開發(fā) 。整個服務(wù)端加上依賴組件共3.5MB选侨。
5掖鱼、消息格式以及通信機制非常簡單,適合進行跨語言開發(fā)援制。目前自帶的Python3.x的客戶端支持發(fā)送消息和接收消息戏挡。
官網(wǎng)http://kafka.apache.org/
六、Apache Kafka
貢獻者:LinkedIn
簡介:Apache Kafka是由Apache軟件基金會開發(fā)的一個開源消息系統(tǒng)項目晨仑,由Scala寫成增拥。Kafka最初是由LinkedIn開發(fā),并于2011年初開源寻歧。2012年10月從Apache Incubator畢業(yè)掌栅。該項目的目標是為處理實時數(shù)據(jù)提供一個統(tǒng)一、高通量码泛、低等待的平臺猾封。
Kafka是一個分布式的、分區(qū)的噪珊、多復(fù)本的日志提交服務(wù)晌缘。它通過一種獨一無二的設(shè)計提供了一個消息系統(tǒng)的功能。
Kafka集群可以在一個指定的時間內(nèi)保持所有發(fā)布上來的消息痢站,不管這些消息有沒有被消費磷箕。打個比方,如果這個時間設(shè)置為兩天阵难,那么在消息發(fā)布的兩天以內(nèi)岳枷,這條消息都是可以被消費的,但是在兩天后,這條消息就會被系統(tǒng)丟棄以釋放空間空繁。Kafka的性能不會受數(shù)據(jù)量的大小影響殿衰,因此保持大量的數(shù)據(jù)不是一個問題。
官網(wǎng)http://kafka.apache.org/
分布式服務(wù)
一盛泡、ZooKeeper
貢獻者:Google
簡介:ZooKeeper是一個分布式的闷祥,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn)傲诵,是Hadoop和Hbase的重要組件凯砍。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護拴竹、名字服務(wù)果覆、分布式同步、組服務(wù)等殖熟。
ZooKeeper是以Fast Paxos算法為基礎(chǔ)的局待,paxos算法存在活鎖的問題,即當有多個proposer交錯提交時菱属,有可能互相排斥導(dǎo)致沒有一個proposer能提交成功钳榨,而Fast Paxos作了一些優(yōu)化,通過選舉產(chǎn)生一個leader纽门,只有l(wèi)eader才能提交propose薛耻,具體算法可見Fast Paxos。因此赏陵,要想弄懂ZooKeeper首先得對Fast Paxos有所了解饼齿。
架構(gòu):
zookeeper

官網(wǎng):http://zookeeper.apache.org/

RPC
(Remote Procedure Call Protocol)——遠程過程調(diào)用協(xié)議
一、Apache Avro
簡介:Apache Avro是Hadoop下的一個子項目蝙搔。它本身既是一個序列化框架缕溉,同時也實現(xiàn)了RPC的功能。Avro官網(wǎng)描述Avro的特性和功能如下:
豐富的數(shù)據(jù)結(jié)構(gòu)類型吃型;
快速可壓縮的二進制數(shù)據(jù)形式证鸥;
存儲持久數(shù)據(jù)的文件容器;
提供遠程過程調(diào)用RPC勤晚;
簡單的動態(tài)語言結(jié)合功能枉层。

相比于Apache Thrift 和Google的Protocol Buffers,Apache Avro具有以下特點:
支持動態(tài)模式赐写。Avro不需要生成代碼鸟蜡,這有利于搭建通用的數(shù)據(jù)處理系統(tǒng),同時避免了代碼入侵挺邀。
數(shù)據(jù)無須加標簽揉忘。讀取數(shù)據(jù)前跳座,Avro能夠獲取模式定義,這使得Avro在數(shù)據(jù)編碼時只需要保留更少的類型信息癌淮,有利于減少序列化后的數(shù)據(jù)大小躺坟。

官網(wǎng):http://avro.apache.org/
二沦补、Facebook Thrift
貢獻者:Facebook
簡介:Thrift源于大名鼎鼎的facebook之手乳蓄,在2007年facebook提交Apache基金會將Thrift作為一個開源項目,對于當時的facebook來說創(chuàng)造thrift是為了解決facebook系統(tǒng)中各系統(tǒng)間大數(shù)據(jù)量的傳輸通信以及系統(tǒng)之間語言環(huán)境不同需要跨平臺的特性夕膀。
thrift可以支持多種程序語言虚倒,例如: C++, C#, Cocoa, Erlang, Haskell, Java, Ocami, Perl, PHP, Python, Ruby, Smalltalk. 在多種不同的語言之間通信thrift可以作為二進制的高性能的通訊中間件,支持數(shù)據(jù)(對象)序列化和多種類型的RPC服務(wù)产舞。
Thrift適用于程序?qū)Τ?序靜態(tài)的數(shù)據(jù)交換魂奥,需要先確定好他的數(shù)據(jù)結(jié)構(gòu),他是完全靜態(tài)化的易猫,當數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時耻煤,必須重新編輯IDL文件,代碼生成准颓,再編譯載入的流程哈蝇,跟其他IDL工具相比較可以視為是Thrift的弱項,Thrift適用于搭建大型數(shù)據(jù)交換及存儲的通用工具攘已,對于大型系統(tǒng)中的內(nèi)部數(shù)據(jù)傳輸相對于JSON和xml無論在性能炮赦、傳輸大小上有明顯的優(yōu)勢。
Thrift 主要由5個部分組成:
· 類型系統(tǒng)以及 IDL 編譯器:負責由用戶給定的 IDL 文件生成相應(yīng)語言的接口代碼
· TProtocol:實現(xiàn) RPC 的協(xié)議層样勃,可以選擇多種不同的對象串行化方式吠勘,如 JSON, Binary。
· TTransport:實現(xiàn) RPC 的傳輸層峡眶,同樣可以選擇不同的傳輸層實現(xiàn)剧防,如socket, 非阻塞的 socket, MemoryBuffer 等。
· TProcessor:作為協(xié)議層和用戶提供的服務(wù)實現(xiàn)之間的紐帶辫樱,負責調(diào)用服務(wù)實現(xiàn)的接口诵姜。
· TServer:聚合 TProtocol, TTransport 和 TProcessor 幾個對象。
上述的這5個部件都是在 Thrift 的源代碼中通過為不同語言提供庫來實現(xiàn)的搏熄,這些庫的代碼在 Thrift 源碼目錄的 lib 目錄下面棚唆,在使用 Thrift 之前需要先熟悉與自己的語言對應(yīng)的庫提供的接口。
Facebook Thrift構(gòu)架:

Thrift

官網(wǎng):http://thrift.apache.org/
集群管理
一心例、Nagios
簡介:Nagios是一款開源的免費網(wǎng)絡(luò)監(jiān)視工具宵凌,能有效監(jiān)控Windows、Linux和Unix的主機狀態(tài)止后,交換機路由器等網(wǎng)絡(luò)設(shè)置瞎惫,打印機等溜腐。在系統(tǒng)或服務(wù)狀態(tài)異常時發(fā)出郵件或短信報警第一時間通知網(wǎng)站運維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知瓜喇。
Nagios可運行在Linux/Unix平臺之上挺益,同時提供一個可選的基于瀏覽器的WEB界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),各種系統(tǒng)問題乘寒,以及日志等等望众。
官網(wǎng):http://www.nagios.org/
二、Ganglia
簡介:Ganglia是UC Berkeley發(fā)起的一個開源集群監(jiān)視項目伞辛,設(shè)計用于測量數(shù)以千計的節(jié)點烂翰。Ganglia的核心包含gmond、gmetad以及一個Web前端蚤氏。主要是用來監(jiān)控系統(tǒng)性能甘耿,如:cpu 、mem竿滨、硬盤利用率佳恬, I/O負載、網(wǎng)絡(luò)流量情況等于游,通過曲線很容易見到每個節(jié)點的工作狀態(tài)毁葱,對合理調(diào)整、分配系統(tǒng)資源曙砂,提高系統(tǒng)整體性能起到重要作用头谜。
Ganglia

官網(wǎng):http://ganglia.sourceforge.net/
三、Apache Ambari
簡介:Apache Ambari是一種基于Web的工具鸠澈,支持Apache Hadoop集群的供應(yīng)柱告、管理和監(jiān)控。Ambari目前已支持大多數(shù)Hadoop組件笑陈,包括HDFS际度、MapReduce、Hive涵妥、Pig乖菱、 Hbase、Zookeper蓬网、Sqoop和Hcatalog等窒所。
Apache Ambari 支持HDFS、MapReduce帆锋、Hive吵取、Pig、Hbase锯厢、Zookeper皮官、Sqoop和Hcatalog等的集中管理脯倒。也是5個頂級hadoop管理工具之一。
Apache Ambari

Ambari主要取得了以下成績:
通過一步一步的安裝向?qū)Ш喕思汗?yīng)捺氢。
預(yù)先配置好關(guān)鍵的運維指標(metrics)藻丢,可以直接查看Hadoop Core(HDFS和MapReduce)及相關(guān)項目(如HBase、Hive和HCatalog)是否健康摄乒。
支持作業(yè)與任務(wù)執(zhí)行的可視化與分析悠反,能夠更好地查看依賴和性能。
通過一個完整的RESTful API把監(jiān)控信息暴露出來缺狠,集成了現(xiàn)有的運維工具问慎。
用戶界面非常直觀萍摊,用戶可以輕松有效地查看信息并控制集群挤茄。

Ambari使用Ganglia收集度量指標,用Nagios支持系統(tǒng)報警冰木,當需要引起管理員的關(guān)注時(比如穷劈,節(jié)點停機或磁盤剩余空間不足等問題),系統(tǒng)將向其發(fā)送郵件踊沸。
此外歇终,Ambari能夠安裝安全的(基于Kerberos)Hadoop集群,以此實現(xiàn)了對Hadoop 安全的支持逼龟,提供了基于角色的用戶認證评凝、授權(quán)和審計功能,并為用戶管理集成了LDAP和Active Directory腺律。
官網(wǎng)http://ambari.apache.org/

基礎(chǔ)設(shè)施
一奕短、LevelDB
貢獻者:Jeff Dean和Sanjay Ghemawat
簡介:Leveldb是一個google實現(xiàn)的非常高效的kv數(shù)據(jù)庫,目前的版本1.2能夠支持billion級別的數(shù)據(jù)量了匀钧。 在這個數(shù)量級別下還有著非常高的性能翎碑,主要歸功于它的良好的設(shè)計。特別是LMS算法之斯。LevelDB 是單進程的服務(wù)日杈,性能非常之高,在一臺4核Q6600的CPU機器上佑刷,每秒鐘寫數(shù)據(jù)超過40w莉擒,而隨機讀的性能每秒鐘超過10w。
Leveldb框架

Leveldb

官網(wǎng)http://code.google.com/p/leveldb/
二瘫絮、SSTable
簡介:如果說Protocol Buffer是谷歌獨立數(shù)據(jù)記錄的通用語言 涨冀,那么有序字符串表(SSTable,Sorted String Table)則是用于存儲檀何,處理和數(shù)據(jù)集交換的最流行??的數(shù)據(jù)輸出格式蝇裤。正如它的名字本身廷支,SSTable是有效存儲大量鍵-值對的簡單抽象,對高吞吐量順序讀/寫進行了優(yōu)化栓辜。
SSTable是Bigtable中至關(guān)重要的一塊恋拍,對于LevelDB來說也是如此。
三藕甩、RecordIO
貢獻者:Google
簡介:我們大家都在用文件來存儲數(shù)據(jù)施敢。文件是存儲在磁盤上的。如果在一些不穩(wěn)定的介質(zhì)上狭莱,文件很容損壞僵娃。即時文件某個位置出現(xiàn)一點小小的問題,整個文件就廢了腋妙。
下面我來介紹Google的一個做法默怨,可以比較好的解決這個問題。那就是recordio文件格式骤素。recoidio的存儲單元是一個一個record匙睹。這個record可以根據(jù)業(yè)務(wù)的需要自行定義。但Google有一種建議的處理方式就是使用protobuf济竹。
reocordio底層的格式其實很簡單痕檬。一個record由四部分組成:
MagicNumber (32 bits)
Uncompressed data payload size (64 bits)
Compressed data payload size (64 bits), or 0 if the data is not compressed
Payload, possibly compressed.

詳細格式如下圖所示:

RecordIO

到這里,大家可能已經(jīng)知道送浊,recordio之所以能對付壞數(shù)據(jù)梦谜,其實就是在這個MagicNumber(校驗值)。
四袭景、Flat Buffers
貢獻者:Google
簡介:谷歌開源高效唁桩、跨平臺的序列化庫FlatBuffers肤京。
該庫的構(gòu)建是專門為游戲開發(fā)人員的性能需求提供支持壁袄,它將序列化數(shù)據(jù)存儲在緩存中,這些數(shù)據(jù)既可以存儲在文件中辣吃,又可以通過網(wǎng)絡(luò)原樣傳輸榆纽,而不需要任何解析開銷仰猖。
FlatBuffers有如下一些關(guān)鍵特性—
訪問序列化數(shù)據(jù)不需要打包/拆包
節(jié)省內(nèi)存而且訪問速度快——緩存只占用訪問數(shù)據(jù)所需要的內(nèi)存;不需要任何額外的內(nèi)存奈籽。
靈活性——通過可選字段向前向后兼容
代碼規(guī)模小
強類型——錯誤在編譯時捕獲饥侵,而不是在運行時
便利性——生成的C++頭文件代碼簡潔。如果需要衣屏,有一項可選功能可以用來在運行時高效解析Schema和JSON-like格式的文本躏升。
跨平臺——使用C++編寫,不依賴STL之外的庫狼忱,因此可以用于任何有C++編輯器的平臺膨疏。當前一睁,該項目包含構(gòu)建方法和在Android、Linux佃却、Windows和OSX等操作系統(tǒng)上使用該庫的示例者吁。

與Protocol Buffers或JSON Parsing這樣的可選方案相比,F(xiàn)latBuffers的優(yōu)勢在于開銷更小饲帅,這主要是由于它沒有解析過程复凳。
代碼托管https://github.com/google/flatbuffers
五、Protocol Buffers
貢獻者:Google
簡介:Protocol Buffers是Google公司開發(fā)的一種數(shù)據(jù)描述語言灶泵,類似于XML能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù)序列化育八,可用于數(shù)據(jù)存儲、通信協(xié)議等方面赦邻。它不依賴于語言和平臺并且可擴展性極強∷杵澹現(xiàn)階段官方支持C++、JAVA深纲、Python等三種編程語言仲锄,但可以找到大量的幾乎涵蓋所有語言的第三方拓展包劲妙。
通過它湃鹊,你可以定義你的數(shù)據(jù)的結(jié)構(gòu),并生成基于各種語言的代碼镣奋。這些你定義的數(shù)據(jù)流可以輕松地在傳遞并不破壞你已有的程序币呵。并且你也可以更新這些數(shù)據(jù)而現(xiàn)有的程序也不會受到任何的影響。
Protocol Buffers經(jīng)常被簡稱為protobuf侨颈。
官網(wǎng)http://code.google.com/p/protobuf/
六余赢、Consistent Hashing(哈希算法)
簡介:一致性哈希算法在1997年由麻省理工學院提出的一種分布式哈希(DHT)實現(xiàn)算法,設(shè)計目標是為了解決因特網(wǎng)中的熱點(Hot spot)問題哈垢,初衷和CARP十分類似妻柒。一致性哈希修正了CARP使用的簡 單哈希算法帶來的問題,使得分布式哈希(DHT)可以在P2P環(huán)境中真正得到應(yīng)用耘分。

Consistent Hashing

一致性hash算法提出了在動態(tài)變化的Cache環(huán)境中举塔,判定哈希算法好壞的四個定義:
1、平衡性(Balance):平衡性是指哈希的結(jié)果能夠盡可能分布到所有的緩沖中去求泰,這樣可以使得所有的緩沖空間都得到利用央渣。很多哈希算法都能夠滿足這一條件。
2渴频、單調(diào)性(Monotonicity):單調(diào)性是指如果已經(jīng)有一些內(nèi)容通過哈希分派到了相應(yīng)的緩沖中芽丹,又有新的緩沖加入到系統(tǒng)中。哈希的結(jié)果應(yīng)能夠保證原有已分配的內(nèi)容可以被映射到原有的或者新的緩沖中去卜朗,而不會被映射到舊的緩沖集合中的其他緩沖區(qū)拔第。
3咕村、分散性(Spread):在分布式環(huán)境中,終端有可能看不到所有的緩沖蚊俺,而是只能看到其中的一部分培廓。當終端希望通過哈希過程將內(nèi)容映射到緩沖上時,由于不同終端所見的緩沖范圍有可能不同春叫,從而導(dǎo)致哈希的結(jié)果不一致肩钠,最終的結(jié)果是相同的內(nèi)容被不同的終端映射到不同的緩沖區(qū)中。這種情況顯然是應(yīng)該避免的暂殖,因為它導(dǎo)致相同內(nèi)容被存儲到不同緩沖中去价匠,降低了系統(tǒng)存儲的效率。分散性的定義就是上述情況發(fā)生的嚴重程度呛每。好的哈希算法應(yīng)能夠盡量避免不一致的情況發(fā)生踩窖,也就是盡量降低分散性。
4晨横、負載(Load):負載問題實際上是從另一個角度看待分散性問題洋腮。既然不同的終端可能將相同的內(nèi)容映射到不同的緩沖區(qū)中,那么對于一個特定的緩沖區(qū)而言手形,也可能被不同的用戶映射為不同 的內(nèi)容啥供。與分散性一樣,這種情況也是應(yīng)當避免的库糠,因此好的哈希算法應(yīng)能夠盡量降低緩沖的負荷伙狐。
在分布式集群中,對機器的添加刪除瞬欧,或者機器故障后自動脫離集群這些操作是分布式集群管理最基本的功能贷屎。如果采用常用的hash(object)%N算法,那么在有機器添加或者刪除后艘虎,很多原有的數(shù)據(jù)就無法找到了唉侄,這樣嚴重的違反了單調(diào)性原則。
七野建、Netty
貢獻者:JBOSS
簡介:Netty是由JBOSS提供的一個java開源框架属划。Netty提供異步的、事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架和工具贬墩,用以快速開發(fā)高性能榴嗅、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。
Netty

也就是說陶舞,Netty 是一個基于NIO的客戶嗽测,服務(wù)器端編程框架,使用Netty 可以確保你快速和簡單的開發(fā)出一個網(wǎng)絡(luò)應(yīng)用,例如實現(xiàn)了某種協(xié)議的客戶唠粥,服務(wù)端應(yīng)用疏魏。Netty相當簡化和流線化了網(wǎng)絡(luò)應(yīng)用的編程開發(fā)過程,例如晤愧,TCP和UDP的socket服務(wù)開發(fā)大莫。
“快速”和“簡單”并不意味著會讓你的最終應(yīng)用產(chǎn)生維護性或性能上的問題。Netty 是一個吸收了多種協(xié)議的實現(xiàn)經(jīng)驗官份,這些協(xié)議包括FTP,SMTP,HTTP只厘,各種二進制,文本協(xié)議舅巷,并經(jīng)過相當精心設(shè)計的項目羔味,最終,Netty 成功的找到了一種方式钠右,在保證易于開發(fā)的同時還保證了其應(yīng)用的性能赋元,穩(wěn)定性和伸縮性。
官網(wǎng)http://netty.io/
八飒房、BloomFilter
簡介:Bloom filter 是由 Howard Bloom 在 1970 年提出的二進制向量數(shù)據(jù)結(jié)構(gòu)搁凸,它具有很好的空間和時間效率,被用來檢測一個元素是不是集合中的一個成員狠毯。如果檢測結(jié)果為是护糖,該元素不一定在集合中;但如果檢測結(jié)果為否垃你,該元素一定不在集合中椅文。因此Bloom filter具有100%的召回率。這樣每個檢測請求返回有“在集合內(nèi)(可能錯誤)”和“不在集合內(nèi)(絕對不在集合內(nèi))”兩種情況惜颇,可見 Bloom filter 是犧牲了正確率和時間以節(jié)省空間。
Bloom filter 優(yōu)點就是它的插入和查詢時間都是常數(shù)少辣,另外它查詢元素卻不保存元素本身凌摄,具有良好的安全性。
搜索引擎
一漓帅、Nutch
簡介:Nutch 是一個開源Java 實現(xiàn)的搜索引擎锨亏。它提供了我們運行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲忙干。
盡管Web搜索是漫游Internet的基本要求, 但是現(xiàn)有web搜索引擎的數(shù)目卻在下降. 并且這很有可能進一步演變成為一個公司壟斷了幾乎所有的web搜索為其謀取商業(yè)利益.這顯然 不利于廣大Internet用戶.
Nutch

Nutch為我們提供了這樣一個不同的選擇. 相對于那些商用的搜索引擎, Nutch作為開放源代碼 搜索引擎將會更加透明, 從而更值得大家信賴. 現(xiàn)在所有主要的搜索引擎都采用私有的排序算法, 而不會解釋為什么一個網(wǎng)頁會排在一個特定的位置. 除此之外, 有的搜索引擎依照網(wǎng)站所付的 費用, 而不是根據(jù)它們本身的價值進行排序. 與它們不同, Nucth沒有什么需要隱瞞, 也沒有 動機去扭曲搜索的結(jié)果. Nutch將盡自己最大的努力為用戶提供最好的搜索結(jié)果.
Nutch目前最新的版本為version v2.2.1器予。
官網(wǎng):https://nutch.apache.org/
二、Lucene
開發(fā)者:Doug Cutting(Hadoop之父捐迫,你懂的)
簡介:Lucene是apache軟件基金會4 jakarta項目組的一個子項目乾翔,是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu)反浓,提供了完整的查詢引擎和索引引擎萌丈,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是為軟件開發(fā)人員提供一個簡單易用的工具包雷则,以方便的在目標系統(tǒng)中實現(xiàn)全文檢索的功能辆雾,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。
Lucene

官網(wǎng):http://lucene.apache.org/
三月劈、SolrCloud
簡介:SolrCloud是Solr4.0版本以后基于Solr和Zookeeper的分布式搜索方案度迂。SolrCloud是Solr的基于Zookeeper一種部署方式。Solr可以以多種方式部署猜揪,例如單機方式英岭,多機Master-Slaver方式。
原理圖
SolrCloud

SolrCloud有幾個特色功能:
集中式的配置信息使用ZK進行集中配置湿右。啟動時可以指定把Solr的相關(guān)配置文件上傳
Zookeeper诅妹,多機器共用。這些ZK中的配置不會再拿到本地緩存毅人,Solr直接讀取ZK中的配置信息吭狡。配置文件的變動,所有機器都可以感知到丈莺。另外划煮,Solr的一些任務(wù)也是通過ZK作為媒介發(fā)布的。目的是為了容錯缔俄。接收到任務(wù)弛秋,但在執(zhí)行任務(wù)時崩潰的機器,在重啟后俐载,或者集群選出候選者時蟹略,可以再次執(zhí)行這個未完成的任務(wù)。
自動容錯SolrCloud對索引分片遏佣,并對每個分片創(chuàng)建多個Replication挖炬。每個Replication都可以對外提供服務(wù)。一個Replication掛掉不會影響索引服務(wù)状婶。更強大的是意敛,它還能自動的在其它機器上幫你把失敗機器上的索引Replication重建并投入使用。
近實時搜索立即推送式的replication(也支持慢推送)膛虫〔菀觯可以在秒內(nèi)檢索到新加入索引。
查詢時自動負載均衡SolrCloud索引的多個Replication可以分布在多臺機器上稍刀,均衡查詢壓力撩独。如果查詢壓力大,可以通過擴展機器,增加Replication來減緩跌榔。
自動分發(fā)的索引和索引分片發(fā)送文檔到任何節(jié)點异雁,它都會轉(zhuǎn)發(fā)到正確節(jié)點。
事務(wù)日志事務(wù)日志確保更新無丟失僧须,即使文檔沒有索引到磁盤纲刀。
四、Solr
簡介:Solr是一個獨立的企業(yè)級搜索應(yīng)用服務(wù)器担平,它對外提供類似于Web-service的API接口示绊。用戶可以通過http請求,向搜索引擎服務(wù)器提交一定格式的XML文件暂论,生成索引面褐;也可以通過Http Get操作提出查找請求,并得到XML格式的返回結(jié)果取胎。
Solr

Solr是一個高性能展哭,采用Java5開發(fā),基于Lucene的全文搜索服務(wù)器闻蛀。同時對其進行了擴展匪傍,提供了比Lucene更為豐富的查詢語言,同時實現(xiàn)了可配置觉痛、可擴展并對查詢性能進行了優(yōu)化役衡,并且提供了一個完善的功能管理界面,是一款非常優(yōu)秀的全文搜索引擎薪棒。
官網(wǎng):https://lucene.apache.org/solr/
五手蝎、ElasticSearch
簡介:ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎俐芯,基于RESTful web接口棵介。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布泼各,是第二最流行的企業(yè)搜索引擎鞍时。設(shè)計用于云計算中,能夠達到實時搜索扣蜻,穩(wěn)定,可靠及塘,快速莽使,安裝使用方便。
官網(wǎng):http://www.elasticsearch.org/
六笙僚、Sphinx
簡介:Sphinx是一個基于SQL的全文檢索引擎芳肌,可以結(jié)合MySQL,PostgreSQL做全文搜索,它可以提供比數(shù)據(jù)庫本身更專業(yè)的搜索功能,使得應(yīng)用程序更容易實現(xiàn)專業(yè)化的全文檢索亿笤。Sphinx特別為一些腳本語言設(shè)計搜索API接口翎迁,如PHP,Python,Perl,Ruby等,同時為MySQL也設(shè)計了一個存儲引擎插件净薛。
Sphinx單一索引最大可包含1億條記錄汪榔,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。Sphinx創(chuàng)建索引的速度為:創(chuàng)建100萬條記錄的索引只需 3~4分鐘肃拜,創(chuàng)建1000萬條記錄的索引可以在50分鐘內(nèi)完成痴腌,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒燃领。
官網(wǎng)http://sphinxsearch.com
七士聪、SenseiDB
貢獻者:linkedin
簡介:SenseiDB是一個NoSQL數(shù)據(jù)庫,它專注于高更新率以及復(fù)雜半結(jié)構(gòu)化搜索查詢猛蔽。熟悉Lucene和Solor的用戶會發(fā)現(xiàn)剥悟,SenseiDB背后有許多似曾相識的概念。SenseiDB部署在多節(jié)點集群中曼库,其中每個節(jié)點可以包括N塊數(shù)據(jù)片区岗。Apache Zookeeper用于管理節(jié)點,它能夠保持現(xiàn)有配置凉泄,并可以將任意改動(如拓撲修改)傳輸?shù)秸麄€節(jié)點群中躏尉。SenseiDB集群還需要一種模式用于定義將要使用的數(shù)據(jù)模型。
從SenseiDB集群中獲取數(shù)據(jù)的唯一方法是通過Gateways(它 沒有“INSERT”方法)后众。每個集群都連接到一個單一gateway胀糜。你需要了解很重要的一點是,由于SenseiDB本身沒法處理原子性 (Atomicity)和隔離性(Isolation)蒂誉,因此只能通過外部在gateway層進行限制教藻。另外,gateway必須確保數(shù)據(jù)流按照預(yù)期的方 式運作右锨。內(nèi)置的gateway有以下幾種形式:
來自文件
來自JMS隊列
通過JDBC
來自Apache Kafka

官網(wǎng)http://senseidb.com
數(shù)據(jù)挖掘
一括堤、Mahout


簡介:Apache Mahout 是 Apache Software Foundation (ASF) 開發(fā)的一個全新的開源項目,其主要目標是創(chuàng)建一些可伸縮的機器學習算法绍移,供開發(fā)人員在 Apache 在許可下免費使用悄窃。該項目已經(jīng)發(fā)展到了它的最二個年頭,目前只有一個公共發(fā)行版蹂窖。Mahout 包含許多實現(xiàn)轧抗,包括集群、分類瞬测、CP 和進化程序横媚。此外纠炮,通過使用 Apache Hadoop 庫,Mahout 可以有效地擴展到云中灯蝴。
雖然在開源領(lǐng)域中相對較為年輕恢口,但 Mahout 已經(jīng)提供了大量功能,特別是在集群和 CF 方面穷躁。Mahout 的主要特性包括:
Taste CF耕肩。Taste 是 Sean Owen 在 SourceForge 上發(fā)起的一個針對 CF 的開源項目,并在 2008 年被贈予 Mahout折砸。
一些支持 Map-Reduce 的集群實現(xiàn)包括 k-Means看疗、模糊 k-Means、Canopy睦授、Dirichlet 和 Mean-Shift两芳。
Distributed Naive Bayes 和 Complementary Naive Bayes 分類實現(xiàn)。
針對進化編程的分布式適用性功能去枷。
Matrix 和矢量庫怖辆。
上述算法的示例。

官網(wǎng)http://mahout.apache.org/
Iaas
IaaS(Infrastructure as a Service)删顶,即基礎(chǔ)設(shè)施即服務(wù)竖螃。
一、OpenStack
簡介:OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發(fā)并發(fā)起的逗余,以Apache許可證授權(quán)的自由軟件和開放源代碼項目特咆。
OpenStack是一個開源的云計算管理平臺項目,由幾個主要的組件組合起來完成具體工作录粱。OpenStack支持幾乎所有類型的云環(huán)境腻格,項目目標是提供實施簡單、可大規(guī)模擴展啥繁、豐富菜职、標準統(tǒng)一的云計算管理平臺。OpenStack通過各種互補的服務(wù)提供了基礎(chǔ)設(shè)施即服務(wù)(IaaS)的解決方案旗闽,每個服務(wù)提供API以進行集成酬核。

OpenStack

6個核心項目:Nova(計算,Compute)适室,Swift(對象存儲嫡意,Object),Glance(鏡像捣辆,Image)鹅很,Keystone(身份,Identity)罪帖,Horizon(自助門戶促煮,Dashboard),Quantum & Melange(網(wǎng)絡(luò)&地址管理)整袁,另外還有若干社區(qū)項目菠齿,如Rackspace(負載均衡)、Rackspace(關(guān)系型數(shù)據(jù)庫)坐昙。
相關(guān)閱讀:
什么是OpenStack绳匀?
成功部署OpenStack的十大要點
** 官網(wǎng)**:https://www.openstack.org/
二、Docker
貢獻者:dotCloud
Docker

簡介:Docker 是一個開源的應(yīng)用容器引擎炸客,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中疾棵,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化痹仙。容器是完全使用沙箱機制是尔,相互之間不會有任何接口(類似 iPhone 的 app)。幾乎沒有性能開銷,可以很容易地在機器和數(shù)據(jù)中心中運行开仰。最重要的是,他們不依賴于任何語言拟枚、框架或包括系統(tǒng)。
官網(wǎng)http://www.docker.io/
三众弓、Kubernetes
貢獻者:Google
簡介:Kubernetes是Google開源的容器集群管理系統(tǒng)恩溅。它構(gòu)建Ddocker技術(shù)之上,為容器化的應(yīng)用提供資源調(diào)度谓娃、部署運行脚乡、服務(wù)發(fā)現(xiàn)、擴容縮容等整一套功能滨达,本質(zhì)上可看作是基于容器技術(shù)的mini-PaaS平臺奶稠。
Kubernetes從另一個角度對資源進行抽象,它讓開發(fā)人員和管理人員共同著眼于服務(wù)的行為和性能的提升弦悉,而不是僅僅關(guān)注對單一的組件或者是基礎(chǔ)資源窒典。
那么Kubernetes集群到底提供了哪些單一容器所沒有功能?它主要關(guān)注的是對服務(wù)級別的控制而并非僅僅是對容器級別的控制,Kubernetes提供了一種“機智”的管理方式稽莉,它將服務(wù)看成一個整體瀑志。在Kubernete的解決方案中,一個服務(wù)甚至可以自我擴展污秆,自我診斷劈猪,并且容易升級。例如良拼,在Google中战得,我們使用機器學習技術(shù)來保證每個運行的服務(wù)的當前狀態(tài)都是最高效的。
代碼托管:https://github.com/GoogleCloudPlatform/kubernetes/
四庸推、Imctfy
貢獻者:Google
簡介:Google開源了自己所用Linux容器系統(tǒng)的開源版本lmctfy常侦,讀音為lem-kut-fee浇冰。包括一個C++庫(使用了C++11,文檔可以參考頭文件)和命令行界面聋亡。目前的版本是0.1肘习,只提供了CPU與內(nèi)存隔離。項目還在密集開發(fā)中坡倔。
mctfy本身是針對某些特定使用場景設(shè)計和實現(xiàn)的漂佩,目前擁有一臺機器上所有容器時運行情況最好,不推薦與LXC和其他容器系統(tǒng)一起使用(雖然也可行)罪塔。已在Ubuntu 12.04+和Ubuntu 3.3與3.8內(nèi)核上測試投蝉。
代碼托管https://github.com/google/Imctfy/

監(jiān)控管理
一、Dapper
貢獻者:Google
簡介:Dapper是一個輕量的ORM(對象關(guān)系映射(英語:Object Relational Mapping征堪,簡稱ORM瘩缆,或O/RM,或O/R mapping)请契。并不單純的是一個DBHelper.因為在Dapper中數(shù)據(jù)其實就是一個對象咳榜。Dapper擴展與IDbConnection上,所以事實上它的傾入性很低爽锥。我用了StructureMap涌韩。如果不喜歡可以自己更換,或者自己實現(xiàn)下氯夷。
代碼就一個SqlMapper.cs文件,主要是IDbConnection的擴展方法臣樱,編譯后就40K的一個很小的dll。
特性:
Dapper很快腮考。Dapper的速度接近與IDataReader雇毫。
Dapper支持主流數(shù)據(jù)庫 Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的數(shù)據(jù)庫
支持多表并聯(lián)的對象。支持一對多 多對多的關(guān)系踩蔚,并且沒侵入性棚放。
原理通過Emit反射IDataReader的序列隊列,來快速的得到和產(chǎn)生對象
Dapper語法十分簡單馅闽。并且無須遷就數(shù)據(jù)庫的設(shè)計

官方站點 http://code.google.com/p/dapper-dot-net/
代碼托管http://bigbully.github.io/Dapper-translation/
二飘蚯、Zipkin
貢獻者:Twitter
簡介:Zipkin (分布式跟蹤系統(tǒng))是 Twitter 的一個開源項目,允許開發(fā)者收集 Twitter 各個服務(wù)上的監(jiān)控數(shù)據(jù)福也,并提供查詢接口局骤。該系統(tǒng)讓開發(fā)者可通過一個 Web 前端輕松的收集和分析數(shù)據(jù),例如用戶每次請求服務(wù)的處理時間等暴凑,可方便的監(jiān)測系統(tǒng)中存在的瓶頸峦甩。

Zipkin

官方網(wǎng)站http://twitter.github.io/zipkin/
代碼托管https://github.com/twitter/zipkin/
End.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市现喳,隨后出現(xiàn)的幾起案子凯傲,更是在濱河造成了極大的恐慌犬辰,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泣洞,死亡現(xiàn)場離奇詭異忧风,居然都是意外死亡,警方通過查閱死者的電腦和手機球凰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腿宰,“玉大人呕诉,你說我怎么就攤上這事〕远龋” “怎么了甩挫?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椿每。 經(jīng)常有香客問我伊者,道長,這世上最難降的妖魔是什么间护? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任亦渗,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己柿祈,他們只是感情好皿渗,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著漏策,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帮碰,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音拾积,去河邊找鬼殉挽。 笑死,一個胖子當著我的面吹牛殷勘,可吹牛的內(nèi)容都是我干的此再。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼玲销,長吁一口氣:“原來是場噩夢啊……” “哼输拇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贤斜,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤策吠,失蹤者是張志新(化名)和其女友劉穎逛裤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猴抹,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡带族,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年蝙砌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跋理。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖前普,靈堂內(nèi)的尸體忽然破棺而出肚邢,到底是詐尸還是另有隱情,我是刑警寧澤拭卿,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站响蕴,受9級特大地震影響目木,放射性物質(zhì)發(fā)生泄漏军拟。R本人自食惡果不足惜懈息,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姑宽。 院中可真熱鬧,春花似錦、人聲如沸纪隙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黔姜。三九已至,卻和暖如春五慈,著一層夾襖步出監(jiān)牢的瞬間毙芜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工架曹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓罗珍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扣唱。 傳聞我的和親對象是個殘疾皇子堕担,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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