vblog:分布式個(gè)人博客管理系統(tǒng)
一、目的
本項(xiàng)目旨在總結(jié)前后端分離常用技術(shù)點(diǎn)挟憔,形成集前端+后端+小程序+移動(dòng)端一整套的個(gè)人技術(shù)博客解決方案。技術(shù)采用主流前后端分離微服務(wù)架構(gòu)烟号,并涵蓋持續(xù)集成及自動(dòng)化部署的相關(guān)解決方案绊谭。既然是以學(xué)習(xí)為目的,可能并不是以做成一個(gè)博客系統(tǒng)為最終目標(biāo)汪拥,可能會(huì)基于此基礎(chǔ)之上進(jìn)行技術(shù)的擴(kuò)充达传。
技術(shù)方面,后端采用Java技術(shù)棧迫筑,前端使用工程化的SPA單體應(yīng)用實(shí)現(xiàn)宪赶。項(xiàng)目計(jì)劃分為兩個(gè)版本分別為vue+Spring Cloud、react+Dubbo脯燃。除了還該常用的增刪改查業(yè)務(wù)之外搂妻,也會(huì)涉及高并發(fā)、限流辕棚、支付欲主、爬蟲等主流流行技術(shù)點(diǎn)邓厕。
業(yè)務(wù)方面分為后臺(tái)+前臺(tái)場(chǎng)景,后臺(tái)管理系統(tǒng)負(fù)責(zé)對(duì)整個(gè)網(wǎng)站進(jìn)行管理扁瓢,前臺(tái)為展示個(gè)人博客內(nèi)容详恼。除了實(shí)現(xiàn)博客的常用功能外,也希望加入秒殺引几、分布式搜索昧互、區(qū)塊鏈等功能。
本人才疏學(xué)淺伟桅,可能有些觀點(diǎn)不是很成熟敞掘,考慮的沒(méi)有很全面,望大家積極指正贿讹。也希望可以結(jié)識(shí)更多熱愛(ài)技術(shù)的朋友渐逃,一起加油够掠,一起進(jìn)步民褂。
二、主要技術(shù):
所用到的主要技術(shù)點(diǎn):
2.1 后端
數(shù)據(jù)庫(kù):MySql
數(shù)據(jù)訪問(wèn)層:Mybatis疯潭、Spring Data Jpa
NoSql:Redis赊堪、MongoDB
持續(xù)集成:docker、k8s
分布式搜索:ElasticSearch
消息隊(duì)列:RabbitMQ竖哩、ActiveMQ
版本控制:git
依賴管理:maven
分布式:Spring Boot哭廉、Spring Cloud、Dubbo相叁、Spring Cloud Alibaba
其他:Quartz遵绰、FFmpeg、Spring增淹、maven椿访、SSO、WebMagic虑润、Netty等
2.2 前端
前端框架:Vue成玫、React、Ant Design拳喻、Element UI
網(wǎng)絡(luò)請(qǐng)求:axios哭当、Fetch
表格圖表:ECharts
數(shù)據(jù)狀態(tài)管理:redux、vuex
路由管理:react-router冗澈、vue-router
小程序:mpvue
代碼檢查工具:ESLint
代碼打包工具:webpack
三钦勘、主要功能
1.登錄注冊(cè):實(shí)現(xiàn)對(duì)用戶名、手機(jī)號(hào)及掃碼的登錄實(shí)現(xiàn)亚亲,實(shí)現(xiàn)單點(diǎn)登陸功能个盆。
2.文章模塊:對(duì)文章進(jìn)行管理
3.分類目錄:對(duì)分類目錄進(jìn)行管理
4.文章標(biāo)簽?zāi)K
5.作品管理:可添加自己的作品
6.友情鏈接管理
7.頁(yè)面管理
8.評(píng)論管理
9.菜單管理
10.用戶管理
11.網(wǎng)站seo設(shè)置
12.媒體資源管理:fastdfs
13.網(wǎng)站爬蟲設(shè)計(jì):可以抓取指定的數(shù)據(jù)到個(gè)人博客中
14.課程管理:可以發(fā)布自己的視頻等課程資源脖岛,實(shí)現(xiàn)收費(fèi)及免費(fèi)功能。包括支付
15.統(tǒng)計(jì)模塊:統(tǒng)計(jì)網(wǎng)站訪問(wèn)量颊亮、評(píng)論量柴梆、等信息記錄網(wǎng)站的歷程
16.搜索:分布式搜索實(shí)現(xiàn)對(duì)文章的搜索功能。
17.活動(dòng)與招聘信息
18.吐槽與問(wèn)答
19.網(wǎng)站數(shù)據(jù)備份與導(dǎo)入導(dǎo)出
20.數(shù)據(jù)字典管理
四终惑、項(xiàng)目匯總
目前主流的技術(shù)架構(gòu)采用前后端分離技術(shù)實(shí)現(xiàn)绍在,在項(xiàng)目工程上來(lái)講,也應(yīng)是分離的項(xiàng)目雹有。每個(gè)項(xiàng)目進(jìn)行單獨(dú)開(kāi)發(fā)偿渡。下面是本項(xiàng)目中所有的工程目錄。
4.1 版本一:
Java采用Spring Boot + Spring Cloud + Spring Data JPA 技術(shù)棧
后端項(xiàng)目地址:https://github.com/iquanzhan/vblog-spring-cloud
前端采用react技術(shù)棧
前端項(xiàng)目地址:https://github.com/iquanzhan/vblog-web-react
4.2 版本二:
Java采用Spring Boot + Dubbo + MyBatis 技術(shù)棧
后端項(xiàng)目地址:https://github.com/iquanzhan/vblog-dubbo
前端采用vue技術(shù)棧
前端項(xiàng)目地址:https://github.com/iquanzhan/vblog-web-vue
使用nginx+docker+k8s進(jìn)行持續(xù)集成與發(fā)布管理霸奕。
五溜宽、工欲善其事必先利其器
java采用jdk1.8
5.1開(kāi)發(fā)工具
Java開(kāi)發(fā)工具配置及優(yōu)化
Java端采用IDEA進(jìn)行開(kāi)發(fā):下載地址:https://www.jetbrains.com/
使用IDEA時(shí)有不少優(yōu)質(zhì)的插件,推薦安裝:
- Grep console: 支持自定義控制臺(tái)不同級(jí)別的日志顏色
- Free Mybatis plugin :根據(jù)Mapper類中方法名可直接跳轉(zhuǎn)到mapper.xml
- MyBatis Log Plugin : 默認(rèn)情況下MyBatis顯示的腳本不是可執(zhí)行的质帅,這個(gè)插件就可以直接將Mybatis執(zhí)行的sql腳本
- Alibaba Java Coding Guidelines :阿里巴巴代碼規(guī)范檢查插件
- Lombok :利用注解的形式适揉,省去get/set等方法
- Gsonformat :可以根據(jù)json快速生成java實(shí)體
- Restfultookit :主要用于調(diào)試接口,可以生成默認(rèn)的數(shù)據(jù)煤惩,可根據(jù)Url快速找到對(duì)應(yīng)的controller
- JRebel :熱部署插件
- GenerateAllSetter :new POJO類的時(shí)候快速生成set方法
如果其他小伙伴有更好的插件推薦嫉嘀,歡迎提出哦~
前端開(kāi)發(fā)工具配置及其優(yōu)化
Java端采用VS Code進(jìn)行開(kāi)發(fā):下載地址:https://code.visualstudio.com/
為了便于開(kāi)發(fā)VS Code也有不少優(yōu)質(zhì)的插件推薦:
- Auto Close Tag:自動(dòng)添加html的關(guān)閉標(biāo)簽
- Auto Rename Tag:修改標(biāo)簽時(shí),自動(dòng)修改結(jié)束標(biāo)簽的名字
- Beautify :代碼美化格式化工具
- Color Info :css中設(shè)置顏色時(shí)顯示色彩信息
- ESLint :前端規(guī)范插件魄揉,可以檢查語(yǔ)法錯(cuò)誤
- Java (ES6) code snippets:ES6語(yǔ)法提示
- Path Intellisense:輸入路徑后自動(dòng)補(bǔ)全
- vscode-element-helper:element UI庫(kù)的代碼提示
- npm Intellisense:在導(dǎo)包時(shí)對(duì)依賴包進(jìn)行提示
- Reactjs code snippets:react代碼提示插件
- React Redux ES6 Snippets :Redux代碼片段工具
- React-Native/React/Redux snippets for es6/es7 :react代碼片段工具
- Vetur : Vue多功能集成插件剪侮,包括:語(yǔ)法高亮,智能提示洛退,emmet瓣俯,錯(cuò)誤提示,格式化兵怯,自動(dòng)補(bǔ)全彩匕,debugger。vscode官方欽定Vue插件摇零,Vue開(kāi)發(fā)者必備
- Bracket Pair Colorizer : 給括號(hào)加上不同的顏色推掸,便于區(qū)分不同的區(qū)塊,使用者可以定義不同括號(hào)類型和不同顏色
歡迎更多志同道合的朋友一起交流哦驻仅,歡迎star
GitHub:GitHub - iquanzhan/vblog: 微博客是一個(gè)旨在學(xué)習(xí)Java+前端技術(shù)的分布式個(gè)人博客系統(tǒng)谅畅。除了會(huì)有web端、手機(jī)端之外還會(huì)有小程序端噪服。「鏈接」
https://github.com/iquanzhan/vblog
您也可以點(diǎn)擊下方更多訪問(wèn)GitHub毡泻。