PiggyMetrics微服务搭建
克隆PiggyMetrics项目
1、本地安装git或者tourtisgit
2、git clone https://github.com/huangmeng4520/PiggyMetrics.git
我本地项目路径为F:\gogs-pigg,你可以clone到本地任意目录
安装maven并设置maven仓库地址为阿里云
1、maven的安装自动看相关文档,此文不做讲解
2、在安装完maven之后,设置mven仓库地址为阿里云仓库地址[http://maven.aliyun.com/nexus/content/groups/public/]
在当前登陆用户目录下面的.m目录下面的settings.xml文件,在
alimaven>
alimaven
http://maven.aliyun.com/nexus/content/groups/public/
central
使用maven编译PiggyMetrics项目
切换到PiggyMetrics项目目录执行mvn package -DskipTests命令打包服务
编译打包完成之后,在每个子项目的target目录下面会生成一个jar包如图
account-service服务dockefile介绍
FROM java:8-jre #基于java:8-jre镜像进行构建
MAINTAINER Alexander Lukyanchikov#作者信息
CMD ["java", "-Xmx200m", "-jar", "/app/account-service.jar"] #account-service容器启动时的运行命令
EXPOSE 6000 #account-service容器对外暴露6000端口号
其它服务的dockerfile的文件差不多,都是基于java:8-jre镜像进行构建不同的服务镜像,有兴趣的同学可以自行查看dockerfile文件。
使用docker-compose 容器编排工具对服务进行构建和启动
本项目中有两个docker-compose文件分别是docker-compose-base.yml和docker-compose.yml文件
1、docker-compose-base.yml文件介绍,此组服务作为基础服务启动主要包括(rabbitmq消息队列服务、config服务配置服务、gateway网关服务、mongodb存储服务)
version: '2' #采用docker-comose v2版本语法
services: #定义docker容器服务
rabbitmq:#定义消息队列服务
image: rabbitmq:3-management #容器启动时调用的镜像
restart: always #当docker服务启动之后自动重启容器
ports: #定义容器端口号和宿主机的映射关系
- 15672:15672
- 5672:5672
logging:
options:
max-size: "10m"
max-file: "10"
config: #服务配置服务器
build: config #congfig服务构建目录
image: sqshq/piggymetrics-config #config服务容器镜像构建名称
environment: #定义config服务的环境变量
CONFIG_SERVICE_PASSWORD: admin
restart: always
ports:
- 8888:8888
logging:
options:
max-size: "10m"
max-file: "10"
registry: #服务注册服务名称
build: registry #构建服务注册docker镜像的dockerfile存放目录
image: sqshq/piggymetrics-registry #服务注册镜像名称
environment:
CONFIG_SERVICE_PASSWORD: admin
restart: always
depends_on: [config]
ports:
- 8761:8761
logging:
options:
max-size: "10m"
max-file: "10"
gateway: #API网关服务名
environment:
CONFIG_SERVICE_PASSWORD: admin
build: gateway #api网关服务镜像构建目录
image: sqshq/piggymetrics-gateway
restart: always
depends_on: [config]
ports:
- 80:4000
logging:
options:
max-size: "10m"
max-file: "10"
data-mongodb: #mogodbdb服务名称
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,否则构建的mogodb镜像无法正常启动。
2、docker-compose.yml文件介绍,此组服务主要包括(auth-service安全认证服务、account-service账户服务、statistics-service账户统计服务、notification-service通知服务、monitoring监控服务)
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环境
1、下载dockertoolbox,针对windows7的安装环境,windos10直接下载官网的msi包安装
2、国内dockertoolbox下载地址https://get.daocloud.io/toolbox/(官网下载地址https://www.docker.com/products/docker-toolbox)
3、本次安装以DockerToolbox-1.13.0.exe为例
①点击DockerToolbox-1.13.0.exe可执行文件,点击下一步运行安装程序
②全部勾选,点击下一步
③点击下一步,安装dockr完成
④执行Docker Quickstart Terminal启动docker
⑤执行Kitematic (Alpha)图形浏览工具
通过docker-compse编排工具构建docker镜像
通过cmd命令进行操作,可以通过命令docker-compose查看docker-compose的帮助
通过 docker-compose -f docker-compose-base.yml build 执行命令时候报错
处理办法如下:
①执行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>
然后执行输出命令:
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
执行构建各个服务的镜像命令docker-compose -f docker-compose-base.yml -f docker-compose.yml build
构建完成之后会生成对应的镜像如图
mongodb、gateway、confg、registry、notification-service、auth-service、monitoring、statistics-service、account-service总共9个镜像
启动基础服务命令如下:
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>
本次启动了消息队列服务、配置服务、mongodb服务、注册服务、网关服务
插件各个服务是否正常启动,可以查看日志文件
docker-compose -f docker-compose-base.yml logs 服务名(docker-compose文件里面定义的服务名)
如:docker-compose -f docker-compose-base.yml logs config #查看服务配置服务的日志文件
检查config配置文件是否正常启动:
输入用户名user密码admin
能正常获取gateway服务的配置文件
检查消息队列是否正常启动:
guest guest
检查服务注册地址:http://192.168.99.100:8761/
mogodb数据检查可以使用
启动账户服务、统计服务、通知服务和监控服务
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>
基础服务+账户体系服务启动完毕之后,一共启动10个容器运行
ACCOUNT-SERVICE 、ACCOUNT-SERVICE、GATEWAY、NOTIFICATION-SERVICE、STATISTICS-SERVICE这五个服务会注册在服务注册中心,如果没有注册成功,整个服务不能完整运行。
API网关账户查看
监控查看
http://192.168.99.100:9000/hystrix
在输入兰输入数据地址 http://192.168.99.100:8989
至此整个搭建环境已经正常运行转,本项目主要用于属于整个微服务架构的流程的学习。