javaweb個(gè)人博客系統(tǒng)-第二版—項(xiàng)目概述

22.jpg

2018.11.08更新:
代碼更新已提交github,更新如下:

1.Elasticsearch全文檢索——之前說(shuō)過(guò)的Elasticseach,現(xiàn)在終于加上了,附帶Logstash定時(shí)增量導(dǎo)入Mysql中的數(shù)據(jù)。
2.增加和完善了用戶收藏、評(píng)論區(qū)創(chuàng)建討論和點(diǎn)贊的功能
3.個(gè)人中心查看已收藏文章的功能、個(gè)人中心上傳圖片(按時(shí)間線排列的照片墻)的功能

下一步要做的事:
1.完善功能、修改bug和代碼;
2.完善一下Spring和數(shù)據(jù)庫(kù)的事務(wù)實(shí)現(xiàn)。譬如刪除一篇文章時(shí)要批量刪除該文章下的所有感謝、收藏和評(píng)論信息;同時(shí)刪除評(píng)論下的點(diǎn)贊和討論信息。此處打算用多線程+編程式事務(wù)來(lái)實(shí)現(xiàn)一下。
3.添加消息中間件,考慮高并發(fā)條件下的安全問(wèn)題(雖然并不會(huì)有那么多人訪問(wèn)...)。譬如多人同時(shí)點(diǎn)贊怎么處理......
4.部署上線


這是在第一版的【個(gè)人博客系統(tǒng)】的基礎(chǔ)上開(kāi)發(fā)的第二版?zhèn)€人博客系統(tǒng),基于SSM框架的Java8、Maven構(gòu)建,github地址:**https://github.com/Flowingsun007/LyonBlog
這個(gè)項(xiàng)目是個(gè)人學(xué)java時(shí)自己做的,從前端-到后端-數(shù)據(jù)庫(kù)都是100%原創(chuàng)的;第一版的項(xiàng)目是jsp+servlet寫的,學(xué)了SSM后重構(gòu)了一次才有的這個(gè)項(xiàng)目,里面代碼寫的比較水,勿噴;新人學(xué)習(xí)玩耍還是可以的~P.S.后面有時(shí)間會(huì)不斷重構(gòu)和優(yōu)化里面的代碼_

1.項(xiàng)目展示

外觀:

image
image
image

【功能】:

用戶登錄注冊(cè)、MD5加密、郵箱驗(yàn)證。 博客文章前臺(tái)展示、文章點(diǎn)贊、評(píng)論、收藏,支持對(duì)評(píng)論進(jìn)行點(diǎn)贊和討論。 后臺(tái)admin管理,支持文章的新增、修改、刪除、文章和標(biāo)簽批量管理。 個(gè)人中心,查看收藏的文章、用戶上傳圖片、照片墻。

2.技術(shù)棧

開(kāi)發(fā)環(huán)境:
macOS/Win10系統(tǒng)+Idea開(kāi)發(fā)+Maven構(gòu)建+Git版本控制
前端:
html+css+javascript;bootstrap+jquery+ajax;
模板引擎:
velocity
開(kāi)源彈框組件:
sweetalert
Markdown編輯器:
Editor.md
容器:
Tomcat9
權(quán)限:
Apache Shrio
后端:
Spring+SpringMVC+Mybatis+Mysql+Druid
緩存+session管理:
Redis。由于2個(gè)Tomcat可能部署在不同的服務(wù)器上,故涉及到session共享的問(wèn)題,此處用redis來(lái)管理所有session,同時(shí)redis兼緩存一些文章分類信息、標(biāo)簽信息等。
反向代理+動(dòng)靜分離:
Nginx。Nginx作為統(tǒng)一入口,靜態(tài)資源請(qǐng)求如js、圖片、css文件等直接由nginx處理,動(dòng)態(tài)請(qǐng)求轉(zhuǎn)發(fā)至Tomcat中處理。 目前配置了2個(gè)Tomcat,Nginx采取默認(rèn)的輪訓(xùn)處理請(qǐng)求。
全文檢索:
ElasticSearch是流行的全文檢索服務(wù)器,主要用于博客搜索。Logstash設(shè)定了簡(jiǎn)單的增量導(dǎo)入,從Mysql中定時(shí)查詢文章內(nèi)容放入Elasticsearch中,從而提供博客文章全文檢索的功能,避免直接查數(shù)據(jù)庫(kù)帶來(lái)較大的開(kāi)銷。
架構(gòu)圖:

image

3.項(xiàng)目部署

由于主項(xiàng)目是在Mac上開(kāi)發(fā)的,所以對(duì)Linux系統(tǒng)比較友好。Github地址:Flowingsun007/LyonBlog ,歡迎點(diǎn)贊~

【分支】

  • master:本地mac上開(kāi)發(fā),同步更新的分支
  • centOS:用于在阿里云服務(wù)器上的分支,基本和master分支類似,有個(gè)別配置如jdbc.properties、log4j.properties、EmailService.java(發(fā)送注冊(cè)郵件)有些許不同
  • windows:僅僅是為了跑起來(lái)而新建的此分支,不保證及時(shí)更新。BTW:我發(fā)現(xiàn)mac上看的前端效果比較好看,到windows上就比較丑了....我也很無(wú)奈~

【項(xiàng)目標(biāo)準(zhǔn)配置】

  • 0.JDK1.8
  • 1.Mysql5.7
  • 2.Tomcat9(2個(gè))
  • 3.Nginx1.14.0
  • 4.Redis4.0.10
  • 5.Elaticsearch、Logstash——6.4.2

Mysql配置

  • a.數(shù)據(jù)庫(kù)連接:resources文件夾下的jdbc.properties
  • b.數(shù)據(jù)庫(kù)的sql包括ddl和dml,放在項(xiàng)目resources文件夾下。

Tomcat配置
只需要改server.xml文件中的幾個(gè)地方即可,這里提供我本地的配置文件做參考。

log4j配置
主要是log4j.properties里修改幾種類別日志存放路徑

Nginx、Redis配置
同樣,提供本地參考,所有的關(guān)鍵配置文件都放在resources/conf文件夾下。

靜態(tài)資源配置
由于項(xiàng)目用的是Nginx,動(dòng)靜分離的,所以靜態(tài)資源全部放置在Nginx下的html文件夾下,可以在百度網(wǎng)盤下載: 鏈接:https://pan.baidu.com/s/1K2Ahz_L4cYR04YtgdCmSGA 提取碼:bdbb

【啟動(dòng)和運(yùn)行】

項(xiàng)目啟動(dòng)標(biāo)準(zhǔn)配置:
Nginx+Redis+2個(gè)Tomcat+Elasticsearch+Logstash

項(xiàng)目啟動(dòng)最簡(jiǎn)配置:
Nginx+Redis+1個(gè)Tomcat

啟動(dòng)順序:
首先安裝好Mysql,Mysql的表和數(shù)據(jù)建好、安裝和配置Tomcat、Nginx、Redis,然后就可以啟動(dòng)了。 Nginx和Redis先啟動(dòng),然后啟動(dòng)Tomcat,在Idea中可以直接啟動(dòng)Tomcat、或者手動(dòng)打war包放入Tomcat中運(yùn)行。

Tomcat啟動(dòng)完成后再啟動(dòng)Elasticsearch+logstash。Elasticsearch+logstash是可選項(xiàng),可以不啟動(dòng)。

【文件夾結(jié)構(gòu)】

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 監(jiān)控預(yù)警平臺(tái), eagle + eye (鷹眼)的合體詞, 寓意可以快速發(fā)現(xiàn)問(wèn)題, 并及時(shí)作出響應(yīng),Eagl...
    Kungfu貓熊閱讀 7,661評(píng)論 0 52
  • 本人陸陸續(xù)續(xù)接觸了ELK的1.4,2.0,2.4,5.0,5.2版本,可以說(shuō)前面使用當(dāng)中一直沒(méi)有太多感觸,最近使用...
    三杯水Plus閱讀 4,260評(píng)論 0 12
  • 本期簡(jiǎn)說(shuō)提高軟件產(chǎn)品質(zhì)量有三個(gè)方面需要把握(本篇文章談ELK的使用): 一、持續(xù)集成 二、自動(dòng)化 三、ELK日志分...
    隔壁老田_閱讀 2,617評(píng)論 0 2
  • Mybatis有四個(gè)核心組件:SqlSessionFactoryBuilder(構(gòu)造器):根據(jù)代碼或者配置生成Sq...
    0號(hào)機(jī)閱讀 383評(píng)論 0 0
  • 與你相約去看云 夏天的天空豐富多彩,變幻無(wú)窮,仰望蒼穹,令人心曠神怡,宛若置身世外,伸開(kāi)想象的雙翅,飛九萬(wàn)里探大...
    阿珍小魚閱讀 179評(píng)論 0 0

友情鏈接更多精彩內(nèi)容