PiggyMetrics微服务编译运行解析

阅读: 评论:0

PiggyMetrics微服务编译运行解析

PiggyMetrics微服务编译运行解析

  • 打包
    • 1 每个项目下都有Dockerfile文件和srcmainresourcesbootstrapyml文件
    • 2 config核心
    • 3 gateway
    • 4 mongodb
  • 编译
  • 运行
  • 如何变成自己的项目

在看这篇文章之前首先看一下
基于PiggyMetrics微服务搭建的分布式系统这篇文章

还有这篇在Docker容器中运行Spring Boot应用

基于spring cloud的微服务架构:

1 打包

mvn package -DskipTests

PiggyMetrics总共有9个项目,打包执行完后,在每个项目的target下有打包的jar文件

1.1 每个项目下都有Dockerfile文件和srcmainl文件

以account-service为例
Dockerfile

FROM java:8-jre  
MAINTAINER Alexander Lukyanchikov <sqshq@sqshq>
ADD ./target/account-service.jar /app/
CMD ["java", "-Xmx200m", "-jar", "/app/account-service.jar"]
EXPOSE 6000

java:8-jre是指docker上官方提供的java镜像,版本号是8.也就是jdk1.8;
MAINTAINER 指作者信息
ADD指将应用jar包复制到/app/中
CMD 表示容器执行后默认执行的命令

spring:application:name: account-servicecloud:config:uri: config:8888fail-fast: truepassword: ${CONFIG_SERVICE_PASSWORD}username: user

这个文件就是加入配置中心服务地址信息。

1.2 config(核心)

configsrcmainresources目录下有l文件和shared文件夹

spring:cloud:config:server:native:search-locations: classpath:/shared  #指向shared文件夹profiles:active: nativeserver:port: 8888   #端口security:user:password: ${CONFIG_SERVICE_PASSWORD}

shared文件夹中包含所有的服务

如果添加了服务需要加一个文件在这里,如l
现在主要关注l

hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 20000ribbon:ReadTimeout: 20000ConnectTimeout: 20000zuul:ignoredServices: '*'host:connect-timeout-millis: 20000socket-timeout-millis: 20000routes:auth-service:path: /uaa/**url: auth-service:5000stripPrefix: falsesensitiveHeaders:account-service:path: /accounts/**serviceId: account-servicestripPrefix: falsesensitiveHeaders:statistics-service:path: /statistics/**serviceId: statistics-servicestripPrefix: falsesensitiveHeaders:notification-service:path: /notifications/**serviceId: notification-servicestripPrefix: falsesensitiveHeaders:sharedbike-service:path: /bike/**serviceId: sharedbike-servicestripPrefix: falsesensitiveHeaders:server:port: 4000

routes配置了路由信息,首先通过path解析到对应service,如bike开头的URL解析到sharedbike-service,所以新增服务也必须在这里配置路由信息。

1.3 gateway

gatewaysrcmainresources目录下有static文件夹,这个就是前端页面的html文件

1.4 mongodb

mongodb文件夹下面有

init.sh是初始化mongodb的帐号密码和数据库名等信息,并插入了demo数据,数据执行sql在dump文件的account-service-dump.js中


总结:
如果增加一个服务,
1. 首先在自己的服务项目里面添加Dockerfile文件和srcmainl文件,
2. 然后在config服务的shared文件夹中加入对应服务的yml文件,如l,
3. 最后在l中添加路由信息,注意端口,不能跟其他服务相同

2 编译

docker-compose -l build
有rabbitmq,config,registry,gateway,data-mongodb

version: '2'
services:rabbitmq:image: rabbitmq:3-managementrestart: alwaysports:- 15672:15672- 5672:5672logging:options:max-size: "10m"max-file: "10"config:build: configimage: sqshq/piggymetrics-configenvironment:CONFIG_SERVICE_PASSWORD: adminrestart: alwaysports:- 8888:8888logging:options:max-size: "10m"max-file: "10"registry:build: registryimage: sqshq/piggymetrics-registryenvironment:CONFIG_SERVICE_PASSWORD: adminrestart: alwaysdepends_on: [config]ports:- 8761:8761logging:options:max-size: "10m"max-file: "10"gateway:environment:CONFIG_SERVICE_PASSWORD: adminbuild: gatewayimage: sqshq/piggymetrics-gatewayrestart: alwaysdepends_on: [config]ports:- 80:4000logging:options:max-size: "10m"max-file: "10"data-mongodb:environment:INIT_DUMP: account-service-dump.jsMONGODB_PASSWORD: adminbuild: mongodbimage: sqshq/piggymetrics-mongodbrestart: alwaysports:- 25000:27017logging:options:max-size: "10m"max-file: "10"

image是镜像文件
restart是指重启虚拟机或docker,容器也会重启
ports是指docker和外部环境的端口映射,左边是外部访问docker的端口,右边是docker内部通信的端口

docker-compose -l -l build

这里有auth-service,account-service,statistics-service,notification-service,monitoring,如新加的服务需要在这里配置,

version: '2'
services:auth-service:environment:CONFIG_SERVICE_PASSWORD: adminNOTIFICATION_SERVICE_PASSWORD: adminSTATISTICS_SERVICE_PASSWORD: adminACCOUNT_SERVICE_PASSWORD: adminMONGODB_PASSWORD: adminbuild: auth-serviceimage: sqshq/piggymetrics-auth-servicerestart: alwaysports:- 5000:5000logging:options:max-size: "10m"max-file: "10"account-service:environment:CONFIG_SERVICE_PASSWORD: adminACCOUNT_SERVICE_PASSWORD: adminMONGODB_PASSWORD: adminbuild: account-serviceimage: sqshq/piggymetrics-account-servicerestart: always# ports:#   - 6000:6000expose: - 6000logging:options:max-size: "10m"max-file: "10"statistics-service:environment:CONFIG_SERVICE_PASSWORD: adminMONGODB_PASSWORD: adminSTATISTICS_SERVICE_PASSWORD: adminbuild: statistics-serviceimage: sqshq/piggymetrics-statistics-servicerestart: alwaysports:- 7000:7000logging:options:max-size: "10m"max-file: "10"notification-service:environment:CONFIG_SERVICE_PASSWORD: adminMONGODB_PASSWORD: adminNOTIFICATION_SERVICE_PASSWORD: adminbuild: notification-serviceimage: sqshq/piggymetrics-notification-servicerestart: alwaysports:- 8000:8000logging:options:max-size: "10m"max-file: "10"sharedbike-service:environment:CONFIG_SERVICE_PASSWORD: adminMONGODB_PASSWORD: adminACCOUNT_SERVICE_PASSWORD: adminbuild: sharedbike-serviceimage: sqshq/piggymetrics-sharedbike-servicerestart: alwaysports:- 3000:3000logging:options:max-size: "10m"max-file: "10"monitoring:environment:CONFIG_SERVICE_PASSWORD: adminbuild: monitoringimage: sqshq/piggymetrics-monitoringrestart: alwaysports:- 9000:8080- 8989:8989logging:options:max-size: "10m"max-file: "10"

3 运行

docker-compose -l up -d

启动base服务

docker-compose -l up -d

启动自定义的服务

4 如何变成自己的项目

步骤:
1. git clone项目到本地,并基于该项目创建自己的mvn项目
2. config、registry、gateway、monitoring,这4个组件不需要修改代码
3. auth-service、account-service、notification-service、statistics-service 替换成自己的服务
4. 在config中修改统一的配置文件,比如新增服务的服务名、端口等
5. 通过mvn构建后生成镜像
6. 运行所有的镜像

本文发布于:2024-01-30 19:57:40,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170661586322456.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:PiggyMetrics
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23