第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

scala的SQL數(shù)據(jù)庫(kù)框架怎么用比較好?

scala的SQL數(shù)據(jù)庫(kù)框架怎么用比較好?

Git
阿晨1998 2018-12-31 16:05:54
scala的SQL數(shù)據(jù)庫(kù)框架怎么用比較好
查看完整描述

1 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

以下是Twitter所使用的開源項(xiàng)目,簡(jiǎn)要瀏覽之后,我覺(jué)得是一個(gè)很好的關(guān)于分布式架構(gòu),大數(shù)據(jù),異步網(wǎng)絡(luò)傳輸(客戶端,服務(wù)端)學(xué)習(xí)的list,做個(gè)備份,以便后用。
1. 分析和搜索服務(wù)
Twitter的搜索服務(wù)每天支持超過(guò)10億次的查詢,其背后的開源項(xiàng)目包括:

Apache Cassandra:一套分布式NoSQL數(shù)據(jù)庫(kù)系統(tǒng),以Amazon專有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型,是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫(kù)。該項(xiàng)目最初由Facebook開發(fā),于2008開源并捐贈(zèng)給Apache基金會(huì)。
Apache Hadoop:由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu),可使應(yīng)用程序充分利用集群的威力高速運(yùn)算和存儲(chǔ),用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。
Apache Lucene:一個(gè)全文檢索引擎工具包,目的是為軟件開發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。
Apache Pig:一個(gè)基于Hadoop的大規(guī)模數(shù)據(jù)分析平臺(tái),它提供的類SQL語(yǔ)言稱為Pig Latin,該語(yǔ)言的編譯器會(huì)把類SQL的數(shù)據(jù)分析請(qǐng)求轉(zhuǎn)換為一系列經(jīng)過(guò)優(yōu)化處理的MapReduce運(yùn)算。Pig為復(fù)雜的海量數(shù)據(jù)并行計(jì)算提供了一個(gè)簡(jiǎn)單的操作和編程接口。

2. 服務(wù)器和存儲(chǔ)
Twitter需要將每天用戶發(fā)送的推文存儲(chǔ)到數(shù)據(jù)庫(kù),并推送給其他相關(guān)的用戶。該過(guò)程用到的開源項(xiàng)目包括:

Linux:主要用于Twitter服務(wù)器。
Memcached:主要用于Twitter的緩存基礎(chǔ)設(shè)施,作用是加速動(dòng)態(tài)Web應(yīng)用程序,減輕數(shù)據(jù)庫(kù)負(fù)載。
Mysql:流行的開源關(guān)系型數(shù)據(jù)庫(kù),被Twitter大量用于存儲(chǔ)Twitter消息。
Node.js:一套用來(lái)編寫高性能網(wǎng)絡(luò)服務(wù)器的JavaScript工具包,在Twitter中用于隊(duì)列處理(接收推文并寫入數(shù)據(jù)庫(kù)),使服務(wù)器能處理每個(gè)連接而不會(huì)阻塞通道。

3. Twitter工程師的工具箱

Apache Subversion:開源的版本控制系統(tǒng)
Git:一個(gè)分布式的版本控制系統(tǒng)
Eclipse:大名鼎鼎的Java IDE。
Gerrit:一個(gè)基于Web的代碼評(píng)審和項(xiàng)目管理的工具,主要面向基于Git版本控制系統(tǒng)的項(xiàng)目
Jenkins:一個(gè)持續(xù)集成引擎,主要用于持續(xù)、自動(dòng)地構(gòu)建/測(cè)試軟件項(xiàng)目,以及監(jiān)控一些定時(shí)執(zhí)行的任務(wù)
RSpec:一個(gè)BDD 測(cè)試工具

4. Twitter背后的編程語(yǔ)言和框架

OpenJDK:Java的開源版本。Twitter陸續(xù)將一些項(xiàng)目從Rails遷移到了Java。
Python:一種高效的動(dòng)態(tài)解釋型Web編程語(yǔ)言。
Ruby和Ruby on Rails:Twitter最初主要由Ruby和Rails開發(fā)。
Scala:Twitter使用的主要應(yīng)用編程語(yǔ)言之一,很多Twitter的基礎(chǔ)架構(gòu)都是用Scala編寫。
Clojure:Clojure是一種運(yùn)行在Java平臺(tái)上的Lisp方言,在任何具備Java虛擬機(jī)的地方,都可以利用Lisp的強(qiáng)大功能。Twitter的大數(shù)據(jù)處理系統(tǒng)Storm就是基于Clojure。
Drupal:使用PHP語(yǔ)言編寫的開源內(nèi)容管理框架(CMF),由內(nèi)容管理系統(tǒng)(CMS)和PHP開發(fā)框架共同構(gòu)成。Twitter的開發(fā)者社區(qū)基于Drupal構(gòu)建。
Sinatra:一個(gè)輕量、快速的Ruby開發(fā)框架。

5. Twitter的前端解決方案

jQuery:全球使用最廣泛的JavaScript框架。
Less:一個(gè)使用廣泛的CSS預(yù)處理器,通過(guò)簡(jiǎn)單的語(yǔ)法和變量對(duì)CSS進(jìn)行擴(kuò)展,可減少很多CSS的代碼量。
MooTools:一個(gè)簡(jiǎn)潔、模塊化、面向?qū)ο蟮拈_源JavaScript框架,為開發(fā)者提供了一個(gè)跨瀏覽器的JS解決方案
Zepto.js:一個(gè)輕量級(jí)的Javascript框架,主要用于移動(dòng)開發(fā)

6. Twitter服務(wù)開發(fā)框架

TwistedMatrix:一個(gè)Python 框架,用來(lái)開發(fā)非阻塞異步的網(wǎng)絡(luò)服務(wù)和應(yīng)用程序。
Netty:一個(gè)異步的、事件驅(qū)動(dòng)的Web應(yīng)用框架和工具,用于快速開發(fā)高性能、高可靠性的網(wǎng)絡(luò)服務(wù)器和客戶端程序。Netty目前作為Twitter的核心隊(duì)列Kestrel的通信模塊。
Apache Thrift:一個(gè)由Facebook開源的遠(yuǎn)程服務(wù)調(diào)用框架,采用接口描述語(yǔ)言定義并創(chuàng)建服務(wù),支持可擴(kuò)展的跨語(yǔ)言服務(wù)開發(fā),所包含的代碼生成引擎可以在多種語(yǔ)言中創(chuàng)建高效的、無(wú)縫的服務(wù)。
Important remarks: Thrift 這篇文章對(duì)Thrift做了綜合性的介紹,值得我思考的是這篇文章:“Thrift與其他框架的比較”,以前對(duì)于分布式系統(tǒng)中的服務(wù)開發(fā)框架,我一直在想為什么不用rest或者webservice來(lái)進(jìn)行通訊?而主流的卻是選擇RPC? 文章用圖表來(lái)展示了Thrift在網(wǎng)絡(luò)傳輸性能上與rest-jason,xml的優(yōu)勢(shì)。所以,是不是可以這樣理解:Thrift從協(xié)議的定義上就使用了高效壓縮數(shù)據(jù)格式TCompactProtocol(就算不用壓縮,只用TBinaryProtocol 二進(jìn)制流的數(shù)據(jù)格式,其傳輸性能也高于jason和xml),從而避免了傳輸,序列化jason或者xml 造成的代價(jià)。

Twitter公司所開源的項(xiàng)目
Twitter從開源社區(qū)中獲得了大量的好處,而Twitter也在不斷地回饋社區(qū),開源了大量基礎(chǔ)設(shè)施和工具,使得其他企業(yè)和開發(fā)者不必重新發(fā)明輪子,在這些開源項(xiàng)目的基礎(chǔ)上更加快速地實(shí)現(xiàn)自己所需。
1. 大數(shù)據(jù)處理

scalding:一個(gè)用于Cascading的Scala API。Cascading是一個(gè)構(gòu)建于Hadoop上的API,用來(lái)創(chuàng)建復(fù)雜和容錯(cuò)數(shù)據(jù)處理工作流,它抽象了集群拓?fù)浣Y(jié)構(gòu)和配置,允許開發(fā)者快速開發(fā)復(fù)雜分布式的應(yīng)用,而不用考慮背后的MapReduce。
summingbird:允許開發(fā)者以類似于本地Scala或Java的方式編寫MapReduce程序,并在大部分著名的分布式MapReduce平臺(tái)(包括Storm和Scalding)中執(zhí)行它們。

2. 前端項(xiàng)目

Bootstrap:一個(gè)用于前端開發(fā)的工具包,包含了基本的CSS、HTML組件,包括排版、表單、按鈕、表格、網(wǎng)格、導(dǎo)航等。
TwUI:針對(duì)Mac平臺(tái)的、支持硬件加速的UI框架,受到了UIKit的啟發(fā)。
typeahead.js:一個(gè)快速、全功能的自動(dòng)完成庫(kù)
hogan.js:一個(gè)Mustache模板語(yǔ)言的編譯器

3. 后端服務(wù)

Twitter Mysql:Twitter的MySQL分支
Parquet:一種Twitter內(nèi)部供Hadoop使用的列式存儲(chǔ)格式,為Hadoop生態(tài)系統(tǒng)中的所有項(xiàng)目提供支持高效率壓縮的列式數(shù)據(jù)表達(dá),而且與數(shù)據(jù)處理框架、數(shù)據(jù)模型或編程語(yǔ)言無(wú)關(guān)。
Finagle:一個(gè)允許開發(fā)者使用Java、Scala或其他JVM語(yǔ)言來(lái)構(gòu)建異步RPC服務(wù)器和客戶端的庫(kù),主要用于Twitter的后端服務(wù)。
iago:一個(gè)負(fù)載生成器,用來(lái)在產(chǎn)品正式發(fā)布前做流量負(fù)載測(cè)試。
twemproxy:一個(gè)快速、輕量級(jí)的memcached和redis代理服務(wù)器
zipkin:一個(gè)分布式的跟蹤系統(tǒng)。在Twitter中用于收集各個(gè)服務(wù)上的監(jiān)控?cái)?shù)據(jù),并提供查詢接口。

4. Twitter基礎(chǔ)設(shè)施通用庫(kù)

commons:Twitter的Python、JVM公共庫(kù)
util:Twitter的一些可重用的代碼庫(kù)
cassovary:一個(gè)基于JVM的簡(jiǎn)單的大圖形處理庫(kù)



查看完整回答
反對(duì) 回復(fù) 2019-01-16
  • 1 回答
  • 0 關(guān)注
  • 687 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)