本文將以圖文的形式說一下Mini-Mall
項目是如何在Windows環境下部署的,主要包括IDEA、MySQL、Nginx、Redis、MongoDB、RabbitMQ、ELK(非必須)、Seata、Zipkin(非必須)等。
1. IDEA
因爲我們在項目中使用了Lombok
工具,所以在IDEA中需要安裝Lombok
的插件。打開File->Settings->Plugins
搜索Lombok然後安裝即可。
2. MySQL
(1)下載並安裝mysql5.6版本,下載地址:https://dev.mysql.com/downloads/installer/
(2)設置數據庫賬號密碼爲:root/Anbang713。
(3)分別創建mall_account
、mall_basis
、mall_invest
、mall_product
、mall_sales
、mall_zipkin
、seata
數據庫。
(4)然後執行在源碼工程中的mall-doc
的各個數據庫sql腳本。
3. Nginx
(1)下載並解壓到指定目錄,下載地址:http://nginx.org/en/download.html
(2)配置nginx.conf
server {
listen 80;
server_name api.mall.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host; # 轉發時,攜帶自身的host,而不是轉發後的host:127.0.0.1
location / {
proxy_pass http://127.0.0.1:9015; #將請求轉發到網關
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name manage.mall.com;
#配置跨域
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
location / {
root F:/workspace/mini-mall-web; #這裏換成自己的mini-mall-web文件夾路徑
autoindex on;
}
}
4. Redis
(1)下載並解壓到指定目錄,下載地址:https://github.com/MicrosoftArchive/redis/releases
(2)在解壓後的根目錄打開終端,執行redis的啓動命令:redis-server --service-install redis.windows-service.conf
(詳情可看這篇博客:https://blog.csdn.net/Anbang713/article/details/82724912)
5. MongoDB
(1)下載Mongodb安裝包,下載地址:https://www.mongodb.com/download-center/community
(2)找到剛剛下載的msi程序,雙擊運行,基本上可以一路next。
(3)安裝成功之後,在安裝目錄的data目錄下創建db目錄,在log目錄下創建mongo.log文件。可通過如下命令配置成windows服務。(詳情可看這篇博客:https://blog.csdn.net/Anbang713/article/details/82708732)
# 數據庫路徑
.\mongod –dbpath E:\Java\mongodb\data\db
# 日誌路徑
.\mongod –logpath E:\Java\mongodb\log\mongo.log
# 日誌爲追加模式
.\mongod –logappend
# 服務名爲MongoDB
.\mongod –serviceName MongoDB
.\mongod –auth
.\mongod –install
6. RabbitMQ
(1)先安裝Erlang,下載地址:https://www.erlang.org/downloads,注意安裝過程中最好以管理員身份去安裝,並且強烈建議使用默認的安裝路徑。
(2)安裝RabbitMQ,下載地址:https://dl.bintray.com/rabbitmq/all/rabbitmq-server/
(3)安裝完成後,可通過命令rabbitmq-plugins enable rabbitmq_management
啓用界面端管理插件,默認賬號:guest/guest。(詳情可看這篇博客:https://blog.csdn.net/Anbang713/article/details/81711775)
7. Seata
(1)下載並解壓到指定目錄,下載地址:https://github.com/seata/seata/releases
(2)進入bin目錄,雙擊seata-server.bat
即可啓動。(詳情可看這篇博客:《MiniMall:今天說一下Seata分佈式事務解決方案》)
8. Zipkin
(1)官網地址:https://zipkin.io/,沒看到這裏面有提供編譯好的jar下載地址。不過我們可以到Maven中央倉庫下載:https://mvnrepository.com/artifact/io.zipkin.java/zipkin-server
(2)下載成功之後,在當前目錄的終端執行下面命令即可啓動Zipkin服務(依賴RabbitMQ、MySQL):
java -jar zipkin-server-2.16.2-exec.jar --zipkin.collector.rabbitmq.addresses=localhost --STORAGE_TYPE=mysql --MYSQL_DB=mall_zipkin --MYSQL_HOST=localhost --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=Anbang713
9. ELK
實際上ELK是三款軟件的簡稱,分別是Elasticsearch、Logstash、Kibana組成。本質上是用於日誌收集、日誌存儲搜索、界面可視化分析。但在發展的過程中,又有新成員Beats的加入,其中Filebeat作爲Beats的組成之一,其和Logstash一樣用於日誌收集,但因爲出色的性能,目前已基本可以取代Logstash,所以這裏日誌收集的話,我們用Filebeat。
Elastic Stack官網:https://www.elastic.co/cn/elasticsearch,需要注意的是,Elastic Stack技術棧的軟件版本需要一致,否則會出現不可預知的問題。
9.1 Filebeat
- 下載並解壓安裝包,下載地址:https://www.elastic.co/cn/downloads/beats/filebeat
- 在安裝目錄新建projects文件夾,並在projects文件夾下新建mini-mall.yml,然後配置如下內容(注意,不同版本的配置格式不一致,這裏使用的是
filebeat-6.2.1
):
filebeat.prospectors:
- type: log
enabled: true
paths:
- F:\temp\logs\*
setup.template.settings:
index.number_of_shards: 1
output.elasticsearch:
hosts: ["localhost:9200"]
- 先啓動ElasticSearch,然後通過命令啓動Filebeat:
filebeat -e -c ./projects/mini-mall.yml
9.2 ElasticSearch
- 下載並解壓安裝包,下載地址:https://www.elastic.co/cn/downloads/elasticsearch
- 進入安裝目錄的bin目錄,雙擊
elasticsearch.bat
即可。
9.3 Kibana
- 下載並解壓安裝包,下載地址:https://www.elastic.co/cn/downloads/kibana
- 進入安裝目錄的bin目錄,雙擊
kibana.bat
即可。
至此,所需環境組件已全部搭建成功。然後依次啓動每個微服務的啓動類即可。需要注意的是,服務註冊中心(mall-registry-server
)和分佈式配置中心(mall-config-server
)需要先啓動。