DuDuMall(二) 基礎架構搭建

自己造輪子 DuDuMall 基礎架構搭建

源碼地址 https://github.com/panjianlong13/DuDuMall_BackEnd


找臺可以用的Linux Server作爲開發環境,安裝好Dokcer(廢話就不多說了),爲了實現後期一鍵化容器部署的目標,這裏的中間件儘量使用容器實現

MongoDB

安裝步驟

  1. 在宿主機上新建Data目錄(/home/DuDuMall/mongo/data/db),使用文件掛載的方式啓動Mongo將很好解決容器朝生暮死,一旦容器掛掉導致數據庫數據丟失的問題
  2. 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 設置容器以守護進程方式運行

  3. 查看容器狀態 docker ps,可以看到MongoDB容器已經啓動
  4. 本地連接Server MongoDB,使用Robo 3T 工具,連接成功

MongoDB  ToDoList

項目前期考慮到進度已經具體需要,MongoDB後期需要做以下幾點

  1. MongoDB集羣以及同步
  2. MongoDB密碼配置


Redis

安裝步驟

  1. 在宿主機上新建Data目錄(/home/DuDuMall/redis/data),使用文件掛載的方式啓動Redis將很好解決容器朝生暮死,一旦容器掛掉導致緩存數據丟失的問題
  2. 下載Redis官方配置文件,並對對應的部分作出一定修改,存儲到本地redis.conf,此處我們對Redis密碼配置做了更改,Redis.conf會作爲配置文件掛載到啓動容器
    # 設置Redis連接密碼,如果配置了連接密碼,客戶端在連接Redis時需要通過auth <password>命令提供密碼,默認關閉
    requirepass Aq1sw2de

     

  3. 啓動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啓動後數據持久化

  4. 查看Redis容器,進入到容器後使用  redis-cli -h 127.0.0.1 -p 6379 -a "Aq1sw2de" 驗證Redis可用性
  5. 本地運用rdm連接工具查看Redis數據庫

 

Redis  ToDoList

項目前期考慮到進度已經具體需要,Redis後期需要做以下幾點

  1. Redis集羣
  2. Redis主從
  3. 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後期需要做以下幾點

  1. FileBeat配置,收集導入容器日誌
  2. 日誌 Rule配置與過濾
  3. 日誌圖形化顯示



小結

如下圖系統中的部分基礎組件已經新建(MySQL暫時不使用)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章