自己造輪子 DuDuMall 基礎架構搭建
源碼地址 https://github.com/panjianlong13/DuDuMall_BackEnd
找臺可以用的Linux Server作爲開發環境,安裝好Dokcer(廢話就不多說了),爲了實現後期一鍵化容器部署的目標,這裏的中間件儘量使用容器實現
MongoDB
安裝步驟
- 在宿主機上新建Data目錄(/home/DuDuMall/mongo/data/db),使用文件掛載的方式啓動Mongo將很好解決容器朝生暮死,一旦容器掛掉導致數據庫數據丟失的問題
- Docker命令啓動MongoDB
docker run -p 27017:27017 -v /home/DuDuMall/mongo/data/db:/data/db --name mongodb -d mongo
-p
指定容器的端口映射,mongodb 默認端口爲 27017-v
爲設置容器的掛載目錄,這裏是將<LocalDirectoryPath>即本機中的目錄掛載到容器中的/data/db中,作爲 mongodb 的存儲目錄--name
爲設置該容器的名稱-d
設置容器以守護進程方式運行 - 查看容器狀態 docker ps,可以看到MongoDB容器已經啓動
- 本地連接Server MongoDB,使用Robo 3T 工具,連接成功
MongoDB ToDoList
項目前期考慮到進度已經具體需要,MongoDB後期需要做以下幾點
- MongoDB集羣以及同步
- MongoDB密碼配置
Redis
安裝步驟
- 在宿主機上新建Data目錄(/home/DuDuMall/redis/data),使用文件掛載的方式啓動Redis將很好解決容器朝生暮死,一旦容器掛掉導致緩存數據丟失的問題
- 下載Redis官方配置文件,並對對應的部分作出一定修改,存儲到本地redis.conf,此處我們對Redis密碼配置做了更改,Redis.conf會作爲配置文件掛載到啓動容器
# 設置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時需要通過auth <password>命令提供密碼,默認關閉 requirepass Aq1sw2de
- 啓動Redis
docker run -p 6379:6379 --name redis -v /home/DuDuMall/redis/redis.conf:/etc/redis/redis.conf -v /home/DuDuMall/redis/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
-p 6379:6379:把容器內的6379端口映射到宿主機6379端口
-v/ home/DuDuMall/edis/redis.conf:/etc/redis/redis.conf:把宿主機配置好的redis.conf放到容器內的這個位置中
-v /home/DuDuMall/redis/data:/data:把redis持久化的數據在宿主機內顯示,做數據備份
redis-server /etc/redis/redis.conf:這個是關鍵配置,讓redis不是無配置啓動,而是按照這個redis.conf的配置啓動
–appendonly yes:redis啓動後數據持久化 - 查看Redis容器,進入到容器後使用 redis-cli -h 127.0.0.1 -p 6379 -a "Aq1sw2de" 驗證Redis可用性
- 本地運用rdm連接工具查看Redis數據庫
Redis ToDoList
項目前期考慮到進度已經具體需要,Redis後期需要做以下幾點
- Redis集羣
- Redis主從
- Redis哨兵模式
ELK 日誌系統
使用到Elastic stack (ELK) on Docker
https://github.com/deviantony/docker-elk
- 5000: Logstash TCP input.
- 9200: Elasticsearch HTTP
- 9300: Elasticsearch TCP transport
- 5601: Kibana
安裝步驟
1.安裝Docker Compose
- 下載最新版本的Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 賦予執行權限
sudo chmod +x /usr/local/bin/docker-compose
- 確認安裝查看版本
docker-compose --version
docker-compose version 1.23.2, build 1110ad01
2.Clone docker-elk項目代碼到本地,並進入項目目錄
git clone https://github.com/deviantony/docker-elk.git
cd docker-elk
3.執行docker-compose up -d
docker-compose up -d
Creating network "docker-elk_elk" with driver "bridge"
Building elasticsearch
Step 1/2 : ARG ELK_VERSION
Creating docker-elk_elasticsearch_1 ...
Successfully built 0541dcc76979
Successfully tagged docker-elk_logstash:latest
WARNING: Image for service logstash was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose
up --build`.
Building kibana
Step 1/2 : ARG ELK_VERSION
--->
Step 2/2 : FROM docker.elastic.co/kibana/kibana-oss:${ELK_VERSION}
Successfully built b970facb2169
Successfully tagged docker-elk_kibana:latest
WARNING: Image for service kibana was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating docker-elk_elasticsearch_1 ... done
Creating docker-elk_logstash_1 ... done
Creating docker-elk_kibana_1 ... done
Attaching to docker-elk_elasticsearch_1, docker-elk_logstash_1, docker-elk_kibana_1
4.查看啓動情況 http://YourServerIP:5601
ELK日誌系統 ToDoList
項目前期考慮到進度已經具體需要,ELK後期需要做以下幾點
- FileBeat配置,收集導入容器日誌
- 日誌 Rule配置與過濾
- 日誌圖形化顯示
小結
如下圖系統中的部分基礎組件已經新建(MySQL暫時不使用)