我們正在部署的Matangle客戶關(guān)系數(shù)據(jù)庫(kù),嚴(yán)格來(lái)說(shuō)并不需要一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)服務(wù)器。在這個(gè)軟件的Clojure層已經(jīng)包含了一個(gè)稱為HTTP Kit的網(wǎng)絡(luò)服務(wù)器。
通常,在Java、Python還有其他服務(wù)器之前會(huì)用一個(gè)專門的網(wǎng)絡(luò)服務(wù)器,最主要的原因是關(guān)注點(diǎn)分離。這一次,并不是因?yàn)闃I(yè)務(wù)隔離,而是非功能性需求,比如性能、負(fù)載均衡和安全上的考慮。目前,基于Java的網(wǎng)絡(luò)服務(wù)器可能可以完美地提供靜態(tài)內(nèi)容,但是一個(gè)基于純C語(yǔ)言的網(wǎng)絡(luò)服務(wù)器,例如Apache httpd或者NGINX的性能更出眾,內(nèi)存更節(jié)省。使用一個(gè)前端網(wǎng)絡(luò)服務(wù)器也很常見,例如SSL加速和負(fù)載均衡。
現(xiàn)在我們有一個(gè)數(shù)據(jù)庫(kù)和一個(gè)網(wǎng)絡(luò)服務(wù)器了。接下來(lái)需要構(gòu)建和部署企業(yè)的應(yīng)用程序。
在你的開發(fā)機(jī)上,在本書解壓后的源代碼文件夾里運(yùn)行以下命令:
cd ch3/crml
lein build
我們現(xiàn)在創(chuàng)建了一個(gè)Java程序,可以部署和運(yùn)行了。
嘗試啟動(dòng)應(yīng)用程序:
ein run
在一個(gè)瀏覽器里訪問終端輸出的URL就可以看到web界面。
怎樣才能正確地把應(yīng)用程序部署到服務(wù)器上呢?如果我們可以使用與剛才安裝數(shù)據(jù)庫(kù)
和網(wǎng)絡(luò)服務(wù)器相同的命令和結(jié)構(gòu),那當(dāng)然是最好了。我們將在第7章部署代碼里介紹方法。
現(xiàn)在的話,在shell里運(yùn)行這個(gè)應(yīng)用已經(jīng)足矣。