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