久久精品7亚洲午夜a,亚洲AV无码一区二区二三区入口,亚洲中文字幕在线乱码http://www.tkk7.com/jackiesmith/java程序愛(ài)好者zh-cnSat, 10 May 2025 17:27:53 GMTSat, 10 May 2025 17:27:53 GMT60大數(shù)據(jù)入門(mén):各種大數(shù)據(jù)技術(shù)介紹http://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.html龍旋風(fēng)龍旋風(fēng)Sun, 05 May 2019 01:24:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.htmlhttp://www.tkk7.com/jackiesmith/comments/433748.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433748.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433748.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433748.html轉(zhuǎn)自:http://www.aboutyun.com/thread-7569-1-1.html

大數(shù)據(jù)我們都知道hadoop,可是還會(huì)各種各樣的技術(shù)進(jìn)入我們的視野:Spark,Storm,impala,讓我們都反映不過(guò)來(lái)。為了能夠更好的架構(gòu)大數(shù)據(jù)項(xiàng)目,這里整理一下,供技術(shù)人員,項(xiàng)目經(jīng)理,架構(gòu)師選擇合適的技術(shù),了解大數(shù)據(jù)各種技術(shù)之間的關(guān)系,選擇合適的語(yǔ)言。
我們可以帶著下面問(wèn)題來(lái)閱讀本文章:
1.hadoop都包含什么技術(shù)
2.Cloudera公司與hadoop的關(guān)系是什么,都有什么產(chǎn)品,產(chǎn)品有什么特性
3.Spark與hadoop的關(guān)聯(lián)是什么?
4.Storm與hadoop的關(guān)聯(lián)是什么?






hadoop家族
創(chuàng)始人:Doug Cutting
整個(gè)Hadoop家族由以下幾個(gè)子項(xiàng)目組成:

Hadoop Common:
Hadoop體系最底層的一個(gè)模塊,為Hadoop各子項(xiàng)目提供各 種工具,如:配置文件和日志操作等。詳細(xì)可查看
Hadoop技術(shù)內(nèi)幕 深入解析HADOOP COMMON和HDFS架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理大全1-9章

HDFS:

是Hadoop應(yīng)用程序中主要的分布式儲(chǔ)存系統(tǒng), HDFS集群包含了一個(gè)NameNode(主節(jié)點(diǎn)),這個(gè)節(jié)點(diǎn)負(fù)責(zé)管理所有文件系統(tǒng)的元數(shù)據(jù)及存儲(chǔ)了真實(shí)數(shù)據(jù)的DataNode(數(shù)據(jù)節(jié)點(diǎn),可以有很多)。HDFS針對(duì)海量數(shù)據(jù)所設(shè)計(jì),所以相比傳統(tǒng)文件系統(tǒng)在大批量小文件上的優(yōu)化,HDFS優(yōu)化的則是對(duì)小批量大型文件的訪問(wèn)和存儲(chǔ)。下面為詳細(xì)資料:
什么是HDFS及HDFS架構(gòu)設(shè)計(jì)
HDFS+MapReduce+Hive快速入門(mén)
Hadoop2.2.0中HDFS為何具有高可用性
Java創(chuàng)建hdfs文件實(shí)例

MapReduce:

是一個(gè)軟件框架,用以輕松編寫(xiě)處理海量(TB級(jí))數(shù)據(jù)的并行應(yīng)用程序,以可靠和容錯(cuò)的方式連接大型集群中上萬(wàn)個(gè)節(jié)點(diǎn)(商用硬件)。
詳細(xì)可查看:
Hadoop簡(jiǎn)介(1):什么是Map/Reduce
Hadoop MapReduce基礎(chǔ)
MapReduce工作原理講解
手把手交你寫(xiě)Mapreduce程序?qū)嵗⒉渴鹪贖adoop2.2.0上運(yùn)行

Hive:

Apache Hive是Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),促進(jìn)了數(shù)據(jù)的綜述(將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表)、即席查詢以及存儲(chǔ)在Hadoop兼容系統(tǒng)中的大型數(shù)據(jù)集分析。Hive提供完整的SQL查詢功能——HiveQL語(yǔ)言,同時(shí)當(dāng)使用這個(gè)語(yǔ)言表達(dá)一個(gè)邏輯變得低效和繁瑣時(shí),HiveQL還允許傳統(tǒng)的Map/Reduce程序員使用自己定制的Mapper和Reducer。hive類(lèi)似CloudBase,基于hadoop分布式計(jì)算平臺(tái)上的提供data warehouse的sql功能的一套軟件。使得存儲(chǔ)在hadoop里面的海量數(shù)據(jù) 的匯總,即席查詢簡(jiǎn)單化。
詳細(xì)可查看:
Hive的起源及詳細(xì)介紹
hive詳解視頻


Pig:

Apache Pig是一個(gè)用于大型數(shù)據(jù)集分析的平臺(tái),它包含了一個(gè)用于數(shù)據(jù)分析應(yīng)用的高級(jí)語(yǔ)言以及評(píng)估這些應(yīng)用的基礎(chǔ)設(shè)施。Pig應(yīng)用的閃光特性在于它們的結(jié)構(gòu)經(jīng)得起大量的并行,也就是說(shuō)讓它們支撐起非常大的數(shù)據(jù)集。Pig的基礎(chǔ)設(shè)施層包含了產(chǎn)生Map-Reduce任務(wù)的編譯器。Pig的語(yǔ)言層當(dāng)前包含了一個(gè)原生語(yǔ)言——Pig Latin,開(kāi)發(fā)的初衷是易于編程和保證可擴(kuò)展性。
Pig是SQL-like語(yǔ)言,是在MapReduce上構(gòu)建的一種高級(jí)查詢語(yǔ)言,把一些運(yùn)算編譯進(jìn)MapReduce模型的Map和Reduce中,并且用戶可以定義自己的功能。Yahoo網(wǎng)格運(yùn)算部門(mén)開(kāi)發(fā)的又一個(gè)克隆Google的項(xiàng)目Sawzall。
詳細(xì)可查看:
pig入門(mén)簡(jiǎn)單操作及語(yǔ)法包括支持?jǐn)?shù)據(jù)類(lèi)型、函數(shù)、關(guān)鍵字、操作符等
hadoop家族Pig和Hive有什么不同?



HBase:

Apache HBase是Hadoop數(shù)據(jù)庫(kù),一個(gè)分布式、可擴(kuò)展的大數(shù)據(jù)存儲(chǔ)。它提供了大數(shù)據(jù)集上隨機(jī)和實(shí)時(shí)的讀/寫(xiě)訪問(wèn),并針對(duì)了商用服務(wù)器集群上的大型表格做出優(yōu)化——上百億行,上千萬(wàn)列。其核心是Google Bigtable論文的開(kāi)源實(shí)現(xiàn),分布式列式存儲(chǔ)。就像Bigtable利用GFS(Google File System)提供的分布式數(shù)據(jù)存儲(chǔ)一樣,它是Apache Hadoop在HDFS基礎(chǔ)上提供的一個(gè)類(lèi)Bigatable。
詳細(xì)可查看:
hbase與傳統(tǒng)數(shù)據(jù)的區(qū)別
HBASE分布式安裝視頻下載分享

ZooKeeper:

Zookeeper是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn)。它是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、 分布式同步、組服務(wù)等。ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
詳細(xì)可查看:
什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具體作用是什么

Avro:

Avro是doug cutting主持的RPC項(xiàng)目,有點(diǎn)類(lèi)似Google的protobuf和Facebook的thrift。avro用來(lái)做以后hadoop的RPC,使hadoop的RPC模塊通信速度更快、數(shù)據(jù)結(jié)構(gòu)更緊湊。


Sqoop:
Sqoop是一個(gè)用來(lái)將Hadoop和關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)相互轉(zhuǎn)移的工具,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入Hadoop的HDFS中,也可以將HDFS中數(shù)據(jù)導(dǎo)入關(guān)系型數(shù)據(jù)庫(kù)中。
詳細(xì)可查看:
Sqoop詳細(xì)介紹包括:sqoop命令,原理,流程

Mahout:

Apache Mahout是個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫(kù),當(dāng)前Mahout支持主要的4個(gè)用例:
推薦挖掘:搜集用戶動(dòng)作并以此給用戶推薦可能喜歡的事物。
聚集:收集文件并進(jìn)行相關(guān)文件分組。
分類(lèi):從現(xiàn)有的分類(lèi)文檔中學(xué)習(xí),尋找文檔中的相似特征,并為無(wú)標(biāo)簽的文檔進(jìn)行正確的歸類(lèi)。
頻繁項(xiàng)集挖掘:將一組項(xiàng)分組,并識(shí)別哪些個(gè)別項(xiàng)會(huì)經(jīng)常一起出現(xiàn)。


Cassandra:

Apache Cassandra是一個(gè)高性能、可線性擴(kuò)展、高有效性數(shù)據(jù)庫(kù),可以運(yùn)行在商用硬件或云基礎(chǔ)設(shè)施上打造完美的任務(wù)關(guān)鍵性數(shù)據(jù)平臺(tái)。在橫跨數(shù)據(jù)中心的復(fù)制中,Cassandra同類(lèi)最佳,為用戶提供更低的延時(shí)以及更可靠的災(zāi)難備份。通過(guò)log-structured update、反規(guī)范化和物化視圖的強(qiáng)支持以及強(qiáng)大的內(nèi)置緩存,Cassandra的數(shù)據(jù)模型提供了方便的二級(jí)索引(column indexe)。

Chukwa:

Apache Chukwa是個(gè)開(kāi)源的數(shù)據(jù)收集系統(tǒng),用以監(jiān)視大型分布系統(tǒng)。建立于HDFS和Map/Reduce框架之上,繼承了Hadoop的可擴(kuò)展性和穩(wěn)定性。Chukwa同樣包含了一個(gè)靈活和強(qiáng)大的工具包,用以顯示、監(jiān)視和分析結(jié)果,以保證數(shù)據(jù)的使用達(dá)到最佳效果。

Ambari:

Apache Ambari是一個(gè)基于web的工具,用于配置、管理和監(jiān)視Apache Hadoop集群,支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同樣還提供了集群狀況儀表盤(pán),比如heatmaps和查看MapReduce、Pig、Hive應(yīng)用程序的能力,以友好的用戶界面對(duì)它們的性能特性進(jìn)行診斷。



HCatalog

Apache HCatalog是Hadoop建立數(shù)據(jù)的映射表和存儲(chǔ)管理服務(wù),它包括:
提供一個(gè)共享模式和數(shù)據(jù)類(lèi)型機(jī)制。
提供一個(gè)抽象表,這樣用戶就不需要關(guān)注數(shù)據(jù)存儲(chǔ)的方式和地址。
為類(lèi)似Pig、MapReduce及Hive這些數(shù)據(jù)處理工具提供互操作性。

------------------------------------------------------------------------------------------------------------------------------------------------

Chukwa:

Chukwa是基于Hadoop的大集群監(jiān)控系統(tǒng),由yahoo貢獻(xiàn)。


------------------------------------------------------------------------------------------------------------------------------------------------

Cloudera系列產(chǎn)品:
創(chuàng)始組織:Cloudera公司
1.Cloudera Manager:
有四大功能
(1)管理
(2)監(jiān)控
(3)診斷
(4)集成
Cloudera Manager四大功能

2.Cloudera CDH:英文名稱(chēng):CDH (Cloudera's Distribution, including Apache Hadoop)
Cloudera對(duì)hadoop做了相應(yīng)的改變。
Cloudera公司的發(fā)行版,我們將該版本稱(chēng)為CDH(Cloudera Distribution Hadoop)。
詳細(xì)可以查看
Cloudera Hadoop什么是CDH及CDH版本介紹
相關(guān)資料
CDH3實(shí)戰(zhàn)Hadoop(HDFS) , HBase , Zookeeper , Flume , Hive
CDH4安裝實(shí)踐HDFS、HBase、Zookeeper、Hive、Oozie、Sqoop
Hadoop CDH四種安裝方式總結(jié)及實(shí)例指導(dǎo)
hadoop的CDH4及CDH5系列文檔下載分享


3.Cloudera Flume
Flume是Cloudera提供的日志收集系統(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);
Flume是Cloudera提供的一個(gè)高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng),F(xiàn)lume支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接受方(可定制)的能力。


Flume最早是Cloudera提供的日志收集系統(tǒng),目前是Apache下的一個(gè)孵化項(xiàng)目,F(xiàn)lume支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫(xiě)到各種數(shù)據(jù)接受方(可定制)的能力 Flume提供了從console(控制臺(tái))、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系統(tǒng),支持TCP和UDP等2種模式),exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力。
Flume采用了多Master的方式。為了保證配置數(shù)據(jù)的一致性,F(xiàn)lume[1]引入了ZooKeeper,用于保存配置數(shù)據(jù),ZooKeeper本身可保證配置數(shù)據(jù)的一致性和高可用,另外,在配置數(shù)據(jù)發(fā)生變化時(shí),ZooKeeper可以通知Flume Master節(jié)點(diǎn)。Flume Master間使用gossip協(xié)議同步數(shù)據(jù)。
詳細(xì)可查看:
什么是 flume 日志收集,flume的特性
什么是 flume 日志收集,flume的原理是什么,flume會(huì)遇到什么問(wèn)題

4.Cloudera Impala

Cloudera Impala對(duì)你存儲(chǔ)在Apache Hadoop在HDFS,HBase的數(shù)據(jù)提供直接查詢互動(dòng)的SQL。除了像Hive使用相同的統(tǒng)一存儲(chǔ)平臺(tái),Impala也使用相同的元數(shù)據(jù),SQL語(yǔ)法(Hive SQL),ODBC驅(qū)動(dòng)程序和用戶界面(Hue Beeswax)。Impala還提供了一個(gè)熟悉的面向批量或?qū)崟r(shí)查詢和統(tǒng)一平臺(tái)。
詳細(xì)可查看:

什么是impala,如何安裝使用Impala
5.Cloudera   hue
Hue是cdh專(zhuān)門(mén)的一套web管理器,它包括3個(gè)部分hue ui,hue server,hue db。hue提供所有的cdh組件的shell界面的接口。你可以在hue編寫(xiě)mr,查看修改hdfs的文件,管理hive的元數(shù)據(jù),運(yùn)行Sqoop,編寫(xiě)Oozie工作流等大量工作。
詳細(xì)可查看:
cloudera hue安裝及Oozie的安裝
什么是Oozie?Oozie簡(jiǎn)介
Cloudera Hue 使用經(jīng)驗(yàn)分享,遇到的問(wèn)題及解決方案


------------------------------------------------------------------------------------------------------------------------------------------------

Spark

創(chuàng)始組織:加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開(kāi)發(fā)


Spark 是一種與 Hadoop 相似的開(kāi)源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說(shuō),Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。

Spark 是在 Scala 語(yǔ)言中實(shí)現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。

盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實(shí)際上它是對(duì) Hadoop 的補(bǔ)充,可以在 Hadoo 文件系統(tǒng)中并行運(yùn)行。通過(guò)名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開(kāi)發(fā),可用來(lái)構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。

可以詳細(xì)了解
科普Spark,Spark是什么,如何使用Spark(1)
科普Spark,Spark核心是什么,如何使用Spark(2)
優(yōu)酷土豆用Spark完善大數(shù)據(jù)分析
Hadoop新成員Hadoop-Cloudera公司將Spark加入Hadoop




Storm

創(chuàng)始人:Twitter
Twitter將Storm正式開(kāi)源了,這是一個(gè)分布式的、容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType開(kāi)發(fā)的實(shí)時(shí)處理系統(tǒng),BackType現(xiàn)在已在Twitter麾下。GitHub上的最新版本是Storm 0.5.2,基本是用Clojure寫(xiě)的。

詳細(xì)可以了解:
storm入門(mén)介紹
Storm-0.9.0.1安裝部署 指導(dǎo)
總體認(rèn)識(shí)storm包括概念,場(chǎng)景,組成
大數(shù)據(jù)架構(gòu)師:hadoop、Storm改選哪一個(gè)?
大數(shù)據(jù)架構(gòu):flume-ng+Kafka+Storm+HDFS 實(shí)時(shí)系統(tǒng)組合



龍旋風(fēng) 2019-05-05 09:24 發(fā)表評(píng)論
]]>
2019年前端比較流行的框架http://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.html龍旋風(fēng)龍旋風(fēng)Sun, 05 May 2019 01:20:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.htmlhttp://www.tkk7.com/jackiesmith/comments/433747.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433747.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433747.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433747.html如今的前端已經(jīng)不再像以前一樣就是簡(jiǎn)單的寫(xiě)寫(xiě)頁(yè)面和調(diào)調(diào)樣式而已,現(xiàn)在的前端越來(lái)越復(fù)雜,知識(shí)點(diǎn)越來(lái)越豐富。
要做WEB前端,就需要知道前端到底是什么,需要學(xué)習(xí)那些知識(shí);前端至少要懂的三個(gè)部分:HTML,CSS,JavaScript(簡(jiǎn)稱(chēng)JS),那首先先明確這三個(gè)概念:
HTML負(fù)責(zé)結(jié)構(gòu),網(wǎng)頁(yè)想要表達(dá)的內(nèi)容由html書(shū)寫(xiě)。
CSS負(fù)責(zé)樣式,網(wǎng)頁(yè)的美與丑由它來(lái)控制
JS負(fù)責(zé)交互,用戶和網(wǎng)頁(yè)產(chǎn)生的互動(dòng)由它來(lái)控制。
web前端發(fā)展至今,演變出了無(wú)數(shù)的庫(kù)和框架;說(shuō)到庫(kù)第一時(shí)間想到的是不是jquery?在小編剛接觸庫(kù)的時(shí)候也是從jQuery開(kāi)始的;今天我們就來(lái)說(shuō)說(shuō)前端發(fā)展到現(xiàn)在都有哪些好用的庫(kù)框架;
1.Bootstrap中文網(wǎng)
先分享下,如果有想一起學(xué)習(xí)web前端,HTML5及JavaScript的可以來(lái)一下我的前端群733581373,好友都會(huì)在里面交流,分享一些學(xué)習(xí)的方法和需要注意的小細(xì)節(jié),每天也會(huì)準(zhǔn)時(shí)的講一些前端的炫酷特效,及前端直播課程學(xué)習(xí)
Bootstrap,讓你的頁(yè)面更簡(jiǎn)潔、直觀、強(qiáng)悍、移動(dòng)設(shè)備優(yōu)先的前端開(kāi)發(fā)框架,讓web開(kāi)發(fā)更迅速、更簡(jiǎn)單。它還提供了更優(yōu)雅的HTML和CSS規(guī)范,它即是由動(dòng)態(tài)CSS語(yǔ)言Less寫(xiě)成。有著豐富的網(wǎng)格布局系統(tǒng)以及豐富的可重用組件,還有強(qiáng)大的支持十幾的JavaScript、jQuery插件以及組件定制等。
Bootstrap中文網(wǎng)地址:http://www.bootcss.com/
2. Layui
layer是一款口碑極佳的web彈層組件,是一款采用自身模塊規(guī)范編寫(xiě)的前端 UI 框架,遵循原生 HTML/CSS/JS 的書(shū)寫(xiě)與組織形式,門(mén)檻極低,拿來(lái)即用。layui 首個(gè)版本發(fā)布于2016年秋,她區(qū)別于那些基于 MVVM 底層的 UI 框架,從核心代碼到 API 的每一處細(xì)節(jié)都經(jīng)過(guò)精心雕琢,非常適合界面的快速開(kāi)發(fā)。
Layui官網(wǎng)地址:https://www.layui.com/
3.ElementUI
Element-Ul是餓了么前端團(tuán)隊(duì)推出的一款基于Vue.js 2.0 的桌面端UI框架,手機(jī)端有對(duì)應(yīng)框架是Mint UI 。適合于Vue的UI框架;
官網(wǎng)地址:http://element-cn.eleme.io/#/zh-CN
4.Mint UI
Mint UI 是 由餓了么前端團(tuán)隊(duì)推出的 一個(gè)基于 Vue.js 的移動(dòng)端組件庫(kù),Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動(dòng)端開(kāi)發(fā)需要。通過(guò)它,可以快速構(gòu)建出風(fēng)格統(tǒng)一的頁(yè)面,提升開(kāi)發(fā)效率。
官網(wǎng)地址:http://mint-ui.github.io/
5.angular
AngularJS誕生于2009年,由Misko Hevery 等人創(chuàng)建,后為Google所收購(gòu)。是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。AngularJS有著諸多特性,最為核心的是MVW(Model-View-Whatever)、模塊化、自動(dòng)化雙向數(shù)據(jù)綁定、語(yǔ)義化標(biāo)簽、依賴注入等等。
官網(wǎng)地址:http://www.angularjs.net.cn/
6.React
React 可以非常輕松地創(chuàng)建用戶交互界面。為你應(yīng)用的每一個(gè)狀態(tài)設(shè)計(jì)簡(jiǎn)潔的視圖,在數(shù)據(jù)改變時(shí) React 也可以高效地更新渲染界面。React 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場(chǎng)上所有 JavaScript MVC 框架,都不滿意,就決定自己寫(xiě)一套,用來(lái)架設(shè)Instagram 的網(wǎng)站。做出來(lái)以后,發(fā)現(xiàn)這套東西很好用,就在2013年5月開(kāi)源了。
官網(wǎng)地址:http://react-china.org/
7.vue.js
近幾年最火的前端框架當(dāng)屬Vue.js了,Vue.js是一個(gè)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的 web 界面的漸進(jìn)式框架。Vue.js 的目標(biāo)是通過(guò)盡可能簡(jiǎn)單的 API 實(shí)現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。很多使用過(guò)vue的程序員這樣評(píng)價(jià)它,“vue.js兼具angular.js和react.js的優(yōu)點(diǎn),并剔除了它們的缺點(diǎn)”。授予了這么高的評(píng)價(jià)的vue.js,也是開(kāi)源世界華人的驕傲,因?yàn)樗淖髡呤俏恢袊?guó)人--尤雨溪
--------------------- 
作者:前端入門(mén)到精通 
來(lái)源:CSDN 
原文:https://blog.csdn.net/zwjweb/article/details/86073841 
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!


龍旋風(fēng) 2019-05-05 09:20 發(fā)表評(píng)論
]]>
幾款主流 NoSql 數(shù)據(jù)庫(kù)的對(duì)比http://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.html龍旋風(fēng)龍旋風(fēng)Sun, 05 May 2019 01:14:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.htmlhttp://www.tkk7.com/jackiesmith/comments/433746.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433746.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433746.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433746.html閱讀全文

龍旋風(fēng) 2019-05-05 09:14 發(fā)表評(píng)論
]]>
常見(jiàn)的NoSQL數(shù)據(jù)庫(kù)http://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.html龍旋風(fēng)龍旋風(fēng)Sun, 05 May 2019 01:12:00 GMThttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.htmlhttp://www.tkk7.com/jackiesmith/comments/433745.htmlhttp://www.tkk7.com/jackiesmith/archive/2019/05/05/433745.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433745.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433745.htmlNoSQL數(shù)據(jù)庫(kù)發(fā)展迅猛,據(jù)說(shuō)現(xiàn)在已經(jīng)有上百種NoSQL數(shù)據(jù)庫(kù)了,下面來(lái)了解下常見(jiàn)的一些NoSQL數(shù)據(jù)庫(kù)

先來(lái)看張表,了解下典型的NoSQL數(shù)據(jù)庫(kù)的分類(lèi)

臨時(shí)性鍵值存儲(chǔ)永久性鍵值存儲(chǔ)面向文檔的數(shù)據(jù)庫(kù)面向列的數(shù)據(jù)庫(kù)
MemcachedTokyo TyrantMangoDBCassandra
RedisFlareCouchDBHBase
 ROMA HyperTable
 Redis  

 

 

 

 

 

1. CouchDB

  • 所用語(yǔ)言: Erlang
  • 特點(diǎn):DB一致性,易于使用
  • 使用許可: Apache
  • 協(xié)議: HTTP/REST
  • 雙向數(shù)據(jù)復(fù)制,
  • 持續(xù)進(jìn)行或臨時(shí)處理,
  • 處理時(shí)帶沖突檢查,
  • 因此,采用的是master-master復(fù)制(見(jiàn)編注2)
  • MVCC – 寫(xiě)操作不阻塞讀操作
  • 可保存文件之前的版本
  • Crash-only(可靠的)設(shè)計(jì)
  • 需要不時(shí)地進(jìn)行數(shù)據(jù)壓縮
  • 視圖:嵌入式 映射/減少
  • 格式化視圖:列表顯示
  • 支持進(jìn)行服務(wù)器端文檔驗(yàn)證
  • 支持認(rèn)證
  • 根據(jù)變化實(shí)時(shí)更新
  • 支持附件處理
  • 因此, CouchApps(獨(dú)立的 js應(yīng)用程序)
  • 需要 jQuery程序庫(kù)

 

最佳應(yīng)用場(chǎng)景:適用于數(shù)據(jù)變化較少,執(zhí)行預(yù)定義查詢,進(jìn)行數(shù)據(jù)統(tǒng)計(jì)的應(yīng)用程序。適用于需要提供數(shù)據(jù)版本支持的應(yīng)用程序。

例如: CRM、CMS系統(tǒng)。 master-master復(fù)制對(duì)于多站點(diǎn)部署是非常有用的。

(編注2:master-master復(fù)制:是一種數(shù)據(jù)庫(kù)同步方法,允許數(shù)據(jù)在一組計(jì)算機(jī)之間共享數(shù)據(jù),并且可以通過(guò)小組中任意成員在組內(nèi)進(jìn)行數(shù)據(jù)更新。)

 

2. Redis

  • 所用語(yǔ)言:C/C++
  • 特點(diǎn):運(yùn)行異常快
  • 使用許可: BSD
  • 協(xié)議:類(lèi) Telnet
  • 有硬盤(pán)存儲(chǔ)支持的內(nèi)存數(shù)據(jù)庫(kù),
  • 但自2.0版本以后可以將數(shù)據(jù)交換到硬盤(pán)(注意, 2.4以后版本不支持該特性!)
  • Master-slave復(fù)制(見(jiàn)編注3)
  • 雖然采用簡(jiǎn)單數(shù)據(jù)或以鍵值索引的哈希表,但也支持復(fù)雜操作,例如 ZREVRANGEBYSCORE。
  • INCR & co (適合計(jì)算極限值或統(tǒng)計(jì)數(shù)據(jù))
  • 支持 sets(同時(shí)也支持 union/diff/inter)
  • 支持列表(同時(shí)也支持隊(duì)列;阻塞式 pop操作)
  • 支持哈希表(帶有多個(gè)域的對(duì)象)
  • 支持排序 sets(高得分表,適用于范圍查詢)
  • Redis支持事務(wù)
  • 支持將數(shù)據(jù)設(shè)置成過(guò)期數(shù)據(jù)(類(lèi)似快速緩沖區(qū)設(shè)計(jì))
  • Pub/Sub允許用戶實(shí)現(xiàn)消息機(jī)制

 

最佳應(yīng)用場(chǎng)景:適用于數(shù)據(jù)變化快且數(shù)據(jù)庫(kù)大小可遇見(jiàn)(適合內(nèi)存容量)的應(yīng)用程序。

例如:股票價(jià)格、數(shù)據(jù)分析、實(shí)時(shí)數(shù)據(jù)搜集、實(shí)時(shí)通訊。

(編注3:Master-slave復(fù)制:如果同一時(shí)刻只有一臺(tái)服務(wù)器處理所有的復(fù)制請(qǐng)求,這被稱(chēng)為 Master-slave復(fù)制,通常應(yīng)用在需要提供高可用性的服務(wù)器集群。)

 

3. MongoDB

  • 所用語(yǔ)言:C++
  • 特點(diǎn):保留了SQL一些友好的特性(查詢,索引)。
  • 使用許可: AGPL(發(fā)起者: Apache)
  • 協(xié)議: Custom, binary( BSON)
  • Master/slave復(fù)制(支持自動(dòng)錯(cuò)誤恢復(fù),使用 sets 復(fù)制)
  • 內(nèi)建分片機(jī)制
  • 支持 javascript表達(dá)式查詢
  • 可在服務(wù)器端執(zhí)行任意的 javascript函數(shù)
  • update-in-place支持比CouchDB更好
  • 在數(shù)據(jù)存儲(chǔ)時(shí)采用內(nèi)存到文件映射
  • 對(duì)性能的關(guān)注超過(guò)對(duì)功能的要求
  • 建議最好打開(kāi)日志功能(參數(shù) –journal)
  • 在32位操作系統(tǒng)上,數(shù)據(jù)庫(kù)大小限制在約2.5Gb
  • 空數(shù)據(jù)庫(kù)大約占 192Mb
  • 采用 GridFS存儲(chǔ)大數(shù)據(jù)或元數(shù)據(jù)(不是真正的文件系統(tǒng))

 

最佳應(yīng)用場(chǎng)景:適用于需要?jiǎng)討B(tài)查詢支持;需要使用索引而不是 map/reduce功能;需要對(duì)大數(shù)據(jù)庫(kù)有性能要求;需要使用 CouchDB但因?yàn)閿?shù)據(jù)改變太頻繁而占滿內(nèi)存的應(yīng)用程序。

例如:你本打算采用 MySQL或 PostgreSQL,但因?yàn)樗鼈儽旧碜詭У念A(yù)定義欄讓你望而卻步。

 

4. Riak

  • 所用語(yǔ)言:Erlang和C,以及一些Javascript
  • 特點(diǎn):具備容錯(cuò)能力
  • 使用許可: Apache
  • 協(xié)議: HTTP/REST或者 custom binary
  • 可調(diào)節(jié)的分發(fā)及復(fù)制(N, R, W)
  • 用 JavaScript or Erlang在操作前或操作后進(jìn)行驗(yàn)證和安全支持。
  • 使用JavaScript或Erlang進(jìn)行 Map/reduce
  • 連接及連接遍歷:可作為圖形數(shù)據(jù)庫(kù)使用
  • 索引:輸入元數(shù)據(jù)進(jìn)行搜索(1.0版本即將支持)
  • 大數(shù)據(jù)對(duì)象支持( Luwak)
  • 提供“開(kāi)源”和“企業(yè)”兩個(gè)版本
  • 全文本搜索,索引,通過(guò) Riak搜索服務(wù)器查詢( beta版)
  • 支持Masterless多站點(diǎn)復(fù)制及商業(yè)許可的 SNMP監(jiān)控

 

最佳應(yīng)用場(chǎng)景:適用于想使用類(lèi)似 Cassandra(類(lèi)似Dynamo)數(shù)據(jù)庫(kù)但無(wú)法處理 bloat及復(fù)雜性的情況。適用于你打算做多站點(diǎn)復(fù)制,但又需要對(duì)單個(gè)站點(diǎn)的擴(kuò)展性,可用性及出錯(cuò)處理有要求的情況。

例如:銷(xiāo)售數(shù)據(jù)搜集,工廠控制系統(tǒng);對(duì)宕機(jī)時(shí)間有嚴(yán)格要求;可以作為易于更新的 web服務(wù)器使用。

5. Membase

  • 所用語(yǔ)言: Erlang和C
  • 特點(diǎn):兼容 Memcache,但同時(shí)兼具持久化和支持集群
  • 使用許可: Apache 2.0
  • 協(xié)議:分布式緩存及擴(kuò)展
  • 非常快速(200k+/秒),通過(guò)鍵值索引數(shù)據(jù)
  • 可持久化存儲(chǔ)到硬盤(pán)
  • 所有節(jié)點(diǎn)都是唯一的( master-master復(fù)制)
  • 在內(nèi)存中同樣支持類(lèi)似分布式緩存的緩存單元
  • 寫(xiě)數(shù)據(jù)時(shí)通過(guò)去除重復(fù)數(shù)據(jù)來(lái)減少 IO
  • 提供非常好的集群管理 web界面
  • 更新軟件時(shí)軟無(wú)需停止數(shù)據(jù)庫(kù)服務(wù)
  • 支持連接池和多路復(fù)用的連接代理

 

最佳應(yīng)用場(chǎng)景:適用于需要低延遲數(shù)據(jù)訪問(wèn),高并發(fā)支持以及高可用性的應(yīng)用程序

例如:低延遲數(shù)據(jù)訪問(wèn)比如以廣告為目標(biāo)的應(yīng)用,高并發(fā)的 web 應(yīng)用比如網(wǎng)絡(luò)游戲(例如 Zynga)

 

6. Neo4j

  • 所用語(yǔ)言: Java
  • 特點(diǎn):基于關(guān)系的圖形數(shù)據(jù)庫(kù)
  • 使用許可: GPL,其中一些特性使用 AGPL/商業(yè)許可
  • 協(xié)議: HTTP/REST(或嵌入在 Java中)
  • 可獨(dú)立使用或嵌入到 Java應(yīng)用程序
  • 圖形的節(jié)點(diǎn)和邊都可以帶有元數(shù)據(jù)
  • 很好的自帶web管理功能
  • 使用多種算法支持路徑搜索
  • 使用鍵值和關(guān)系進(jìn)行索引
  • 為讀操作進(jìn)行優(yōu)化
  • 支持事務(wù)(用 Java api)
  • 使用 Gremlin圖形遍歷語(yǔ)言
  • 支持 Groovy腳本
  • 支持在線備份,高級(jí)監(jiān)控及高可靠性支持使用 AGPL/商業(yè)許可

 

最佳應(yīng)用場(chǎng)景:適用于圖形一類(lèi)數(shù)據(jù)。這是 Neo4j與其他nosql數(shù)據(jù)庫(kù)的最顯著區(qū)別

例如:社會(huì)關(guān)系,公共交通網(wǎng)絡(luò),地圖及網(wǎng)絡(luò)拓譜

 

7. Cassandra

  • 所用語(yǔ)言: Java
  • 特點(diǎn):對(duì)大型表格和 Dynamo支持得最好
  • 使用許可: Apache
  • 協(xié)議: Custom, binary (節(jié)約型)
  • 可調(diào)節(jié)的分發(fā)及復(fù)制(N, R, W)
  • 支持以某個(gè)范圍的鍵值通過(guò)列查詢
  • 類(lèi)似大表格的功能:列,某個(gè)特性的列集合
  • 寫(xiě)操作比讀操作更快
  • 基于 Apache分布式平臺(tái)盡可能地 Map/reduce
  • 我承認(rèn)對(duì) Cassandra有偏見(jiàn),一部分是因?yàn)樗旧淼挠纺[和復(fù)雜性,也因?yàn)?Java的問(wèn)題(配置,出現(xiàn)異常,等等)

 

最佳應(yīng)用場(chǎng)景:當(dāng)使用寫(xiě)操作多過(guò)讀操作(記錄日志)如果每個(gè)系統(tǒng)組建都必須用 Java編寫(xiě)(沒(méi)有人因?yàn)檫x用 Apache的軟件被解雇)

例如:銀行業(yè),金融業(yè)(雖然對(duì)于金融交易不是必須的,但這些產(chǎn)業(yè)對(duì)數(shù)據(jù)庫(kù)的要求會(huì)比它們更大)寫(xiě)比讀更快,所以一個(gè)自然的特性就是實(shí)時(shí)數(shù)據(jù)分析

 

8. HBase

(配合 ghshephard使用)

  • 所用語(yǔ)言: Java
  • 特點(diǎn):支持?jǐn)?shù)十億行X上百萬(wàn)列
  • 使用許可: Apache
  • 協(xié)議:HTTP/REST (支持 Thrift,見(jiàn)編注4)
  • 在 BigTable之后建模
  • 采用分布式架構(gòu) Map/reduce
  • 對(duì)實(shí)時(shí)查詢進(jìn)行優(yōu)化
  • 高性能 Thrift網(wǎng)關(guān)
  • 通過(guò)在server端掃描及過(guò)濾實(shí)現(xiàn)對(duì)查詢操作預(yù)判
  • 支持 XML, Protobuf, 和binary的HTTP
  • Cascading, hive, and pig source and sink modules
  • 基于 Jruby( JIRB)的shell
  • 對(duì)配置改變和較小的升級(jí)都會(huì)重新回滾
  • 不會(huì)出現(xiàn)單點(diǎn)故障
  • 堪比MySQL的隨機(jī)訪問(wèn)性能

 

最佳應(yīng)用場(chǎng)景:適用于偏好BigTable:)并且需要對(duì)大數(shù)據(jù)進(jìn)行隨機(jī)、實(shí)時(shí)訪問(wèn)的場(chǎng)合。

例如: Facebook消息數(shù)據(jù)庫(kù)(更多通用的用例即將出現(xiàn))

編注4:Thrift 是一種接口定義語(yǔ)言,為多種其他語(yǔ)言提供定義和創(chuàng)建服務(wù),由Facebook開(kāi)發(fā)并開(kāi)源

當(dāng)然,所有的系統(tǒng)都不只具有上面列出的這些特性。這里我僅僅根據(jù)自己的觀點(diǎn)列出一些我認(rèn)為的重要特性。與此同時(shí),技術(shù)進(jìn)步是飛速的,所以上述的內(nèi)容肯定需要不斷更新。我會(huì)盡我所能地更新這個(gè)列表。

 



    龍旋風(fēng) 2019-05-05 09:12 發(fā)表評(píng)論
    ]]>
    java替換Excel字符http://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.html龍旋風(fēng)龍旋風(fēng)Fri, 23 Mar 2018 12:42:00 GMThttp://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.htmlhttp://www.tkk7.com/jackiesmith/comments/433128.htmlhttp://www.tkk7.com/jackiesmith/archive/2018/03/23/433128.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/433128.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/433128.html
  • //模板路徑

    String modelPath="D:\Excel.xls" 

    //sheet的名字

    String sheetName="sheet1";

    獲取Excel模板對(duì)象

     try {  

                File file = new File(modelPath);  

                if(!file.exists()){  

                    System.out.println("模板文件:"+modelPath+"不存在!");  

                }  

                fs = new POIFSFileSystem(new FileInputStream(file));  

                wb = new HSSFWorkbook(fs);  

                sheet = wb.getSheet(sheetName);  

            } catch (FileNotFoundException e) {  

                e.printStackTrace();  

            } catch (IOException e) {  

                e.printStackTrace();  

            }

  • //從heet中獲取行數(shù)

    int rowNum = sheet.getLastRowNum();

  • //獲取行里面的總列數(shù)

    row = sheet.getRow(i); //i:第I行

    // 獲取行里面的總列數(shù)

    int columnNum = 0;

    if(row!=null){

    columnNum = row.getPhysicalNumberOfCells();

    }

  • //獲取單元格的值 

    HSSFCell cell = sheet.getRow(i).getCell(j); //第i行,第j列

    String cellValue = cell.getStringCellValue();

  • //替換數(shù)據(jù)   本人的數(shù)據(jù)存放在Map中

    for (Entry<String, Object> entry : param.entrySet()) {

            String key = entry.getKey();

            if(key.equals(cellValue)){

                    String value = entry.getValue().toString();

                    setCellStrValue(i, j, value);//設(shè)置第i行,第j列的值為Value

            }

    }

  • 完整代碼:

        /**

         * 替換Excel模板中的數(shù)據(jù)

         * @param sheetName Sheet名字

         * @param modelPath 模板路徑

         * @param param 需要替換的數(shù)據(jù)

         * @return

         * @author 劉澤中

         * @Date: 2015年12月11日

         */

        public HSSFWorkbook replaceExcel(String sheetName,String modelPath,Map<String, Object> param){

        //獲取所讀取excel模板的對(duì)象

            try {  

                File file = new File(modelPath);  

                if(!file.exists()){  

                    System.out.println("模板文件:"+modelPath+"不存在!");  

                }  

                fs = new POIFSFileSystem(new FileInputStream(file));  

                wb = new HSSFWorkbook(fs);  

                sheet = wb.getSheet(sheetName);  

            } catch (FileNotFoundException e) {  

                e.printStackTrace();  

            } catch (IOException e) {  

                e.printStackTrace();  

            } 

        replaceExcelDate(param);

        return wb;

        }

        /**

         * 根據(jù) Map中的數(shù)據(jù)替換Excel模板中指定數(shù)據(jù)

         * @param param 

         * @author 劉澤中

         * @Date: 2015年12月11日

         */

        public void replaceExcelDate(Map<String, Object> param){

    // 獲取行數(shù)

    int rowNum = sheet.getLastRowNum();

    for (int i = 0; i < rowNum; i++) {

    row = sheet.getRow(i);

    // 獲取行里面的總列數(shù)

    int columnNum = 0;

    if(row!=null){

    columnNum = row.getPhysicalNumberOfCells();

    }

    for (int j = 0; j < columnNum; j++) {

    HSSFCell cell = sheet.getRow(i).getCell(j);

    String cellValue = cell.getStringCellValue();

    for (Entry<String, Object> entry : param.entrySet()) {

    String key = entry.getKey();

    if(key.equals(cellValue)){

    String value = entry.getValue().toString();

    setCellStrValue(i, j, value);

    }

    }

    }

    }

        }

        /** 

         * 設(shè)置字符串類(lèi)型的數(shù)據(jù) 

         * @param rowIndex--行值 從0開(kāi)始

         * @param cellnum--列值  從0開(kāi)始

         * @param value--字符串類(lèi)型的數(shù)據(jù) 

         * 

         * @author 劉澤中

         * @Date: 2015年12月11日

         */  

        public void setCellStrValue(int rowIndex, int cellnum, String value) {  

            HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum);  

            cell.setCellValue(value);  

        }



  • 龍旋風(fēng) 2018-03-23 20:42 發(fā)表評(píng)論
    ]]>
    HttpClient調(diào)用Web工程的Spring @Controller方法http://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.html龍旋風(fēng)龍旋風(fēng)Sun, 06 Sep 2015 08:16:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.htmlhttp://www.tkk7.com/jackiesmith/comments/427140.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/09/06/427140.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/427140.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/427140.html
    package com.acce.server.order.controller;
    import javax.annotation.Resource;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import com.acce.server.core.controller.BaseController;
    import com.acce.server.pcOrder.service.PcBillService;
    import com.alibaba.fastjson.JSONObject;
    @Controller()
    public class TestController extends BaseController {
    @Resource(name = "PcBillService")
    private PcBillService pcBillService;
    /**
    * 獲取tabFirster表中屬于該用戶的信息。
    * @param json
    * @param response
    */
    @RequestMapping("/api/order/querryTabHeadByPC.html")
    public void querryTabHead(@RequestParam String json,
    HttpServletResponse response) {
    System.out.println("/api/order/querryTabHead.html 接口獲取到j(luò)son:" + json);
    String rstString = pcBillService.querryTabHead(
    JSONObject.parseObject(json)).toString();
    response.setContentType("text/html; charset=utf-8");
    this.wirteJsonToResponse(response, rstString);
    }
    }

    2、將響應(yīng)結(jié)果返回:
    package com.acce.server.core.controller;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.log4j.Logger;
    public class BaseController {
    protected Logger LOGGER = Logger.getLogger(this.getClass());
    /**
    * 將json寫(xiě)到servlet輸出流
    * @param response
    * @param json
    */
    protected void wirteJsonToResponse(HttpServletResponse response,String json) {
    PrintWriter writer = null;
    try {
    writer = response.getWriter();
    writer.println(json);
    writer.flush();
    } catch (IOException e) {
    LOGGER.error("服務(wù)端寫(xiě)json報(bào)錯(cuò):"+json,e);
    } finally {
    if(null != writer) {
    writer.close();
    }
    }
    }
    }
    3、新起一個(gè)JavaProject,導(dǎo)入HttpClient相關(guān)jar包:httpclient-4.3.6.jar、httpclient-cache-4.2.jar、httpcore-4.3.3.jar、httpcore-ab-4.2.1.jar、httpcore-nio-4.2.1.jar、httpmime-4.2.jar
    package acce;
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.protocol.HTTP;
    public class TestHttpClient {
    public static void main(String[] args) {
    // \"{\"tabCorpFirst\":\"快來(lái)大酒店\",\"syncing\":\"1\"}\"
    String url = "http://localhost:8080/acce-server/api/order/querryKingdomFromFirster.html";
    try {
    HttpClient httpClient = new DefaultHttpClient();
    // HttpPost 實(shí)現(xiàn) HttpUriRequest 接口,HttpUriRequest接口 繼承 HttpRequest
    HttpPost httpPostReq = new HttpPost(url);
    ArrayList<NameValuePair> paramList = new ArrayList<NameValuePair>();
    String json = "{\"tabCorpFirst\":\"快來(lái)大酒店\",\"syncing\":\"1\"}";
    NameValuePair param1 = new BasicNameValuePair("json", json);
    paramList.add(param1);
    UrlEncodedFormEntity aa = new UrlEncodedFormEntity(paramList,
    HTTP.UTF_8);
    httpPostReq.setEntity(aa);
    HttpResponse resp = httpClient.execute(httpPostReq);
    if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    BufferedReader reader = new BufferedReader(
    new InputStreamReader(resp.getEntity().getContent()));
    StringBuffer result = new StringBuffer();
    String inputLine = null;
    while ((inputLine = reader.readLine()) != null) {
    result.append(inputLine);
    }
    System.out.println("結(jié)果: " + result.toString());
    } else {
    System.out.println("結(jié)果: "
    + resp.getStatusLine().getStatusCode());
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
    測(cè)試調(diào)用接口正確,并能獲取到正確的值;
    注:由于項(xiàng)目是UTF-8,需要轉(zhuǎn)碼。


    龍旋風(fēng) 2015-09-06 16:16 發(fā)表評(píng)論
    ]]>
    linux環(huán)境下Apache安裝及整合Apache和Tomcathttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.html龍旋風(fēng)龍旋風(fēng)Fri, 07 Aug 2015 06:50:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.htmlhttp://www.tkk7.com/jackiesmith/comments/426617.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/08/07/426617.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/426617.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/426617.htmlApache和tomcat-connector下載地址:
    http://httpd.apache.org/
    http://tomcat.apache.org/download-connectors.cgi
    參考URL:
    http://blog.csdn.net/wubai250/article/details/8533968

    下載解壓tar.gz,使用命令tar -zxvf *.tar.gz解壓http和tomcat-connector
    注:jdk、Tomcat安裝不再此處描述,可在網(wǎng)上搜索。
    1、安裝Apache2(httpd-2.2.31)
        $cd httpd-2.2.31
       $./configure --prefix=/env/web/apache/
       $make
       $make install
       安裝成功后,進(jìn)入
      $ cd /env/web/apache/bin
       $ 
    ./apachectl -k start
       打開(kāi)httpd.conf之后查找Listen這行
        改成Listen 80

        注:80端口要是被占用了就啟動(dòng)不了的,如果被占用可以改成7160之類(lèi)的
        再查找ServerName
        改成
        ServerName localhost:80
        就修改這2個(gè)地方就完成了,可以啟動(dòng)了

    2、安裝tomcat-connectors-1.2.40-src
    CentOS環(huán)境下整合Apache和Tomcat
    轉(zhuǎn)載:http://www.aiplaypc.com/111.html

    1、先去apache官網(wǎng)下載tomcat與apache關(guān)聯(lián)的相關(guān)應(yīng)用,地址
    http://tomcat.apache.org/download-connectors.cgi
    2、解壓下載的
     tar -xzvf tomcat-connectors-1.2.40-src.tar.gz 
    3、進(jìn)入cd /
    tomcat-connectors-1.2.40-src/native ,輸入命令:./configure --with-apxs=/env/web/apache/bin/apxs(注:此處為apache安裝路徑)
         $make
         $make install
      注意:安裝完成tomcat-connectors之后,查看apache目錄下的modules目錄,是否多出一些.so文件。這些文件即jk的配置信息文件
    3、配置負(fù)載均衡
    A)、修改http.conf配置文件
    <VirtualHost *:80>
    ServerName test.XXX.com
    ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=on
    ProxyPassReverse / balancer://cluster
    ErrorLog logs/test.XXX.com-error_log
    CustomLog logs/test.XXX.com-access_log common
    </VirtualHost>

    ProxyRequests Off
    <Proxy balancer://cluster>
            #注此處端口不是8080那個(gè)端口,而是負(fù)載均衡使用的端口
    BalancerMember ajp://127.0.0.1:8089 loadfactor=1 route=jvm1
    BalancerMember ajp://127.0.0.1:9099 loadfactor=1 route=jvm2
    </Proxy>
    注:參考
    http://www.cnblogs.com/fx2008/p/4086555.html
    B)、配置tomcat
    修改端口,具體詳見(jiàn)上述鏈接描述



    龍旋風(fēng) 2015-08-07 14:50 發(fā)表評(píng)論
    ]]>
    【cenos】apache安裝及配置(同一端口分靜態(tài)html和動(dòng)態(tài)tomcat頁(yè)面)http://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.html龍旋風(fēng)龍旋風(fēng)Mon, 03 Aug 2015 08:20:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.htmlhttp://www.tkk7.com/jackiesmith/comments/426561.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/08/03/426561.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/426561.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/426561.html     cenos 環(huán)境、httpd 2.2.3、tomcat 7、jdk 1.7、mysql 5.5
        注:jdk、tomcat安裝不再描述
    2、安裝apache httpd
        查看是否有安裝httpd :rpm -qa httpd
        安裝httpd : yum install httpd
        卸載httpd : yum remove httpd
    3、默認(rèn)安裝路徑:/etc/httpd
        啟動(dòng)httpd: cd /etc/init.d/   ./httpd start
        停止httpd: cd /etc/init.d/   ./httpd stop
    4、修改/etc/httpd/conf/httpd.conf
         #同一端口,不同域名配置必須下一行
         NameVirtualHost *:80
        <VirtualHost *:80>
            ServerName XX.XXX.com
            DocumentRoot "/env/www/html"
            ErrorLog logs/XX.XXX.com-error_log
            CustomLog logs/XX.XXX.com-access_log common
        </VirtualHost>
        <VirtualHost *:80>
    ServerName YY.YYY.com
            ProxyPass / http://YY.YYY.com:8080/
            ProxyPassReverse / http://YY.YYY.com:8080/
            ErrorLog logs/hbseed.accedeal.com-error_log
            CustomLog logs/hbseed.accedeal.com-access_log common
        </VirtualHost>
    5、在瀏覽器中分別輸入XX.XXX.com和YY.YYY.com分別訪問(wèn)了html和tomcat的jsp項(xiàng)目



    龍旋風(fēng) 2015-08-03 16:20 發(fā)表評(píng)論
    ]]>
    Tomcat配置域名和多域名映射同一IP(Windows環(huán)境)http://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.html龍旋風(fēng)龍旋風(fēng)Wed, 27 May 2015 03:02:00 GMThttp://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.htmlhttp://www.tkk7.com/jackiesmith/comments/425325.htmlhttp://www.tkk7.com/jackiesmith/archive/2015/05/27/425325.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/425325.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/425325.html 1、硬件配置:Win7、Tomcat7.0;

    2、修改 C:\Windows\System32\drivers\etc\hosts 文件
        增加域名映射本服務(wù)器地址(可換成IP地址):
        127.0.0.1 heyj.net
        127.0.0.1 www.test.net
        127.0.0.1 www.run.net
    3、tomcat目錄下的conf文件夾, server.xml
        修改8080端口,改為80
        <
    Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
        <Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
        修改Host端口對(duì)應(yīng)的配置
        <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
           <Alias>heyj.net</Alias>
           <Alias>www.test.net</Alias>
           <Alias>www.run.net</Alias>
        </Host>
    4、輸入localhost、heyj.net、www.test.net、www.run.net后,IE頁(yè)面均能顯示如圖所示:
      



        




    龍旋風(fēng) 2015-05-27 11:02 發(fā)表評(píng)論
    ]]>
    Input Text 的事件及方法http://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.html龍旋風(fēng)龍旋風(fēng)Sat, 12 Jul 2014 03:06:00 GMThttp://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.htmlhttp://www.tkk7.com/jackiesmith/comments/415722.htmlhttp://www.tkk7.com/jackiesmith/archive/2014/07/12/415722.html#Feedback0http://www.tkk7.com/jackiesmith/comments/commentRss/415722.htmlhttp://www.tkk7.com/jackiesmith/services/trackbacks/415722.html閱讀全文

    龍旋風(fēng) 2014-07-12 11:06 發(fā)表評(píng)論
    ]]>
    主站蜘蛛池模板: 东方aⅴ免费观看久久av| 久久久久国色AV免费观看| 国产福利在线免费| 亚洲自偷自偷精品| 最近免费中文字幕高清大全 | 一本久久综合亚洲鲁鲁五月天| 亚洲AV无码成人精品区狼人影院 | 无码国模国产在线观看免费| 亚洲欧美日韩中文二区| 午夜精品在线免费观看| 久久精品国产亚洲AV未满十八| 免费看国产一级特黄aa大片| 免费一级特黄特色大片| 狠狠亚洲婷婷综合色香五月排名 | 永久在线观看免费视频| 亚洲宅男永久在线| 免费A级毛片无码无遮挡内射| 亚洲成_人网站图片| 四虎影在线永久免费观看| 国产黄片不卡免费| 亚洲国产女人aaa毛片在线| 免费福利在线播放| 国产区图片区小说区亚洲区| 亚洲午夜爱爱香蕉片| 五月天婷婷免费视频| 亚洲伦另类中文字幕| 国产精品久久久久久久久久免费| 久久久久亚洲国产AV麻豆| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲国产精品久久网午夜| 午夜精品在线免费观看| 中文字幕版免费电影网站| 久久久久亚洲av无码专区| 免费网站看v片在线香蕉| 男人和女人高潮免费网站 | 国产AV无码专区亚洲AWWW| 最近中文字幕大全免费视频 | 久久精品7亚洲午夜a| 最近高清国语中文在线观看免费| 九九九精品视频免费| 亚洲av极品无码专区在线观看|