PiggyMetrics微服務(wù)搭建
克隆PiggyMetrics項目
1、本地安裝git或者tourtisgit
2区拳、git clone https://github.com/huangmeng4520/PiggyMetrics.git
我本地項目路徑為F:\gogs-pigg拘领,你可以clone到本地任意目錄
安裝maven并設(shè)置maven倉庫地址為阿里云
1、maven的安裝自動看相關(guān)文檔樱调,此文不做講解
2约素、在安裝完maven之后,設(shè)置mven倉庫地址為阿里云倉庫地址[http://maven.aliyun.com/nexus/content/groups/public/]
在當(dāng)前登陸用戶目錄下面的.m目錄下面的settings.xml文件笆凌,在<mirrors></mirrors>段落里面假如下面段落
<mirror>
<id>alimaven</>
<name>alimaven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
使用maven編譯PiggyMetrics項目
切換到PiggyMetrics項目目錄執(zhí)行mvn package -DskipTests命令打包服務(wù)
編譯打包完成之后圣猎,在每個子項目的target目錄下面會生成一個jar包如圖
account-service服務(wù)dockefile介紹
FROM java:8-jre #基于java:8-jre鏡像進(jìn)行構(gòu)建
MAINTAINER Alexander Lukyanchikov#作者信息
CMD ["java", "-Xmx200m", "-jar", "/app/account-service.jar"] #account-service容器啟動時的運行命令
EXPOSE 6000 #account-service容器對外暴露6000端口號
其它服務(wù)的dockerfile的文件差不多,都是基于java:8-jre鏡像進(jìn)行構(gòu)建不同的服務(wù)鏡像菩颖,有興趣的同學(xué)可以自行查看dockerfile文件样漆。
使用docker-compose 容器編排工具對服務(wù)進(jìn)行構(gòu)建和啟動
本項目中有兩個docker-compose文件分別是docker-compose-base.yml和docker-compose.yml文件
1、docker-compose-base.yml文件介紹晦闰,此組服務(wù)作為基礎(chǔ)服務(wù)啟動主要包括(rabbitmq消息隊列服務(wù)放祟、config服務(wù)配置服務(wù)、gateway網(wǎng)關(guān)服務(wù)呻右、mongodb存儲服務(wù))
version: '2' #采用docker-comose v2版本語法
services: #定義docker容器服務(wù)
rabbitmq:#定義消息隊列服務(wù)
image: rabbitmq:3-management #容器啟動時調(diào)用的鏡像
restart: always #當(dāng)docker服務(wù)啟動之后自動重啟容器
ports: #定義容器端口號和宿主機的映射關(guān)系
- 15672:15672
- 5672:5672
logging:
options:
max-size: "10m"
max-file: "10"
config: #服務(wù)配置服務(wù)器
build: config #congfig服務(wù)構(gòu)建目錄
image: sqshq/piggymetrics-config #config服務(wù)容器鏡像構(gòu)建名稱
environment: #定義config服務(wù)的環(huán)境變量
CONFIG_SERVICE_PASSWORD: admin
restart: always
ports:
- 8888:8888
logging:
options:
max-size: "10m"
max-file: "10"
registry: #服務(wù)注冊服務(wù)名稱
build: registry #構(gòu)建服務(wù)注冊docker鏡像的dockerfile存放目錄
image: sqshq/piggymetrics-registry #服務(wù)注冊鏡像名稱
environment:
CONFIG_SERVICE_PASSWORD: admin
restart: always
depends_on: [config]
ports:
- 8761:8761
logging:
options:
max-size: "10m"
max-file: "10"
gateway: #API網(wǎng)關(guān)服務(wù)名
environment:?
CONFIG_SERVICE_PASSWORD: admin
build: gateway #api網(wǎng)關(guān)服務(wù)鏡像構(gòu)建目錄
image: sqshq/piggymetrics-gateway
restart: always
depends_on: [config]
ports:
- 80:4000
logging:
options:
max-size: "10m"
max-file: "10"
data-mongodb: #mogodbdb服務(wù)名稱
environment:
INIT_DUMP: account-service-dump.js
MONGODB_PASSWORD: admin
build: mongodb
image: sqshq/piggymetrics-mongodb
restart: always
ports:
- 25000:27017
logging:
options:
max-size: "10m"
max-file: "10"
注意:mongodb下面的nit.sh文檔格式必須為unix跪妥,否則構(gòu)建的mogodb鏡像無法正常啟動。
2声滥、docker-compose.yml文件介紹眉撵,此組服務(wù)主要包括(auth-service安全認(rèn)證服務(wù)、account-service賬戶服務(wù)落塑、statistics-service賬戶統(tǒng)計服務(wù)纽疟、notification-service通知服務(wù)、monitoring監(jiān)控服務(wù))
version: '2'
services:
auth-service:
environment:
CONFIG_SERVICE_PASSWORD: admin
NOTIFICATION_SERVICE_PASSWORD: admin
STATISTICS_SERVICE_PASSWORD: admin
ACCOUNT_SERVICE_PASSWORD: admin
MONGODB_PASSWORD: admin
build: auth-service
image: sqshq/piggymetrics-auth-service
restart: always
ports:
- 5000:5000
logging:
options:
max-size: "10m"
max-file: "10"
account-service:
environment:
CONFIG_SERVICE_PASSWORD: admin
ACCOUNT_SERVICE_PASSWORD: admin
MONGODB_PASSWORD: admin
build: account-service
image: sqshq/piggymetrics-account-service
restart: always
# ports:
#? - 6000:6000
expose:
- 6000
logging:
options:
max-size: "10m"
max-file: "10"
statistics-service:
environment:
CONFIG_SERVICE_PASSWORD: admin
MONGODB_PASSWORD: admin
STATISTICS_SERVICE_PASSWORD: admin
build: statistics-service
image: sqshq/piggymetrics-statistics-service
restart: always
ports:
- 7000:7000
logging:
options:
max-size: "10m"
max-file: "10"
notification-service:
environment:
CONFIG_SERVICE_PASSWORD: admin
MONGODB_PASSWORD: admin
NOTIFICATION_SERVICE_PASSWORD: admin
build: notification-service
image: sqshq/piggymetrics-notification-service
restart: always
ports:
- 8000:8000
logging:
options:
max-size: "10m"
max-file: "10"
monitoring:
environment:
CONFIG_SERVICE_PASSWORD: admin
build: monitoring
image: sqshq/piggymetrics-monitoring
restart: always
ports:
- 9000:8080
- 8989:8989
logging:
options:
max-size: "10m"
max-file: "10"
windows7搭建docker環(huán)境
1憾赁、下載dockertoolbox,針對windows7的安裝環(huán)境污朽,windos10直接下載官網(wǎng)的msi包安裝
2、國內(nèi)dockertoolbox下載地址https://get.daocloud.io/toolbox/(官網(wǎng)下載地址https://www.docker.com/products/docker-toolbox)
3龙考、本次安裝以DockerToolbox-1.13.0.exe為例
①點擊DockerToolbox-1.13.0.exe可執(zhí)行文件蟆肆,點擊下一步運行安裝程序
②全部勾選,點擊下一步
③點擊下一步晦款,安裝dockr完成
④執(zhí)行Docker Quickstart Terminal啟動docker
⑤執(zhí)行Kitematic (Alpha)圖形瀏覽工具
通過docker-compse編排工具構(gòu)建docker鏡像
通過cmd命令進(jìn)行操作炎功,可以通過命令docker-compose查看docker-compose的幫助
通過 docker-compose -f docker-compose-base.yml build 執(zhí)行命令時候報錯
處理辦法如下:
①執(zhí)行docker-machine env default命令獲取下面信息
F:\gogs-pigg\PiggyMetrics>docker-machine env default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\Administrator\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
REM Run this command to configure your shell:
REM? ? @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
F:\gogs-pigg\PiggyMetrics>
然后執(zhí)行輸出命令:
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://192.168.99.100:2376
SET DOCKER_CERT_PATH=C:\Users\Administrator\.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
SET COMPOSE_CONVERT_WINDOWS_PATHS=true
@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
執(zhí)行構(gòu)建各個服務(wù)的鏡像命令docker-compose -f docker-compose-base.yml -f docker-compose.yml build
構(gòu)建完成之后會生成對應(yīng)的鏡像如圖
mongodb、gateway缓溅、confg蛇损、registry、notification-service、auth-service淤齐、monitoring束世、statistics-service、account-service總共9個鏡像
啟動基礎(chǔ)服務(wù)命令如下:
F:\gogs-pigg\PiggyMetrics>docker-compose -f docker-compose-base.yml up -d ?#up啟動床玻,-d后臺運行
Creating piggymetrics_rabbitmq_1
Creating piggymetrics_config_1
Creating piggymetrics_data-mongodb_1
Creating piggymetrics_registry_1
Creating piggymetrics_gateway_1
F:\gogs-pigg\PiggyMetrics>
本次啟動了消息隊列服務(wù)、配置服務(wù)沉帮、mongodb服務(wù)锈死、注冊服務(wù)、網(wǎng)關(guān)服務(wù)
插件各個服務(wù)是否正常啟動穆壕,可以查看日志文件
docker-compose -f docker-compose-base.yml logs 服務(wù)名(docker-compose文件里面定義的服務(wù)名)
如:docker-compose -f docker-compose-base.yml logs config #查看服務(wù)配置服務(wù)的日志文件
檢查config配置文件是否正常啟動:
輸入用戶名user密碼admin
能正常獲取gateway服務(wù)的配置文件
檢查消息隊列是否正常啟動:
guest guest
檢查服務(wù)注冊地址:http://192.168.99.100:8761/
mogodb數(shù)據(jù)檢查可以使用
啟動賬戶服務(wù)待牵、統(tǒng)計服務(wù)、通知服務(wù)和監(jiān)控服務(wù)
F:\gogs-pigg\PiggyMetrics>docker-compose -f docker-compose.yml up -d
WARNING: Found orphan containers (piggymetrics_data-mongodb_1, piggymetrics_gateway_1, piggymetrics_registry_1, piggymetrics_config_1, piggymetrics_rabbitmq_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating piggymetrics_account-service_1
Creating piggymetrics_statistics-service_1
Creating piggymetrics_notification-service_1
Creating piggymetrics_auth-service_1
Creating piggymetrics_monitoring_1
F:\gogs-pigg\PiggyMetrics>
基礎(chǔ)服務(wù)+賬戶體系服務(wù)啟動完畢之后喇勋,一共啟動10個容器運行
ACCOUNT-SERVICE 缨该、ACCOUNT-SERVICE、GATEWAY川背、NOTIFICATION-SERVICE贰拿、STATISTICS-SERVICE這五個服務(wù)會注冊在服務(wù)注冊中心,如果沒有注冊成功熄云,整個服務(wù)不能完整運行膨更。
API網(wǎng)關(guān)賬戶查看
監(jiān)控查看
http://192.168.99.100:9000/hystrix
在輸入蘭輸入數(shù)據(jù)地址 http://192.168.99.100:8989
至此整個搭建環(huán)境已經(jīng)正常運行轉(zhuǎn),本項目主要用于屬于整個微服務(wù)架構(gòu)的流程的學(xué)習(xí)缴允。