springcloud gateway_基于Spring Cloud, Docker, Docker Swarm等构建微服务演示项目

本文基于Spring cloud, Docker, Docker swarm, mysql等构建微服务演示项目。

Spring Cloud + Docker Swarm 演示环境

  • Windows 10 – Docker Client(Spring Cloud 开发环境)
  • CentOS-101 – Manager
  • Ubuntu-102 – Worker1
  • CentOS-103 – Worker2

Docker Registry v2 - 部署在CentOS-101上

bf7c2506a22cf6881ff79cabbf1082c5.png

Spring Cloud 项目 - MallManagement

项目源代码github:

https://github.com/rickiechina/microservice-mallmanagement

4d8fa700ed6f53efd43cf1a7fe2582b4.png

第一步,构建镜像,并上传到registry 仓库

1. 设置 Docker的insecure-registries 属性,支持Docker Client 端推送images 镜像

如不按照上述设置该属性,Docker Client 推送 Images 将产生如下异常:

docker registry push错误“server gave HTTP response to HTTPS client”

解决方法:

在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:

{ "insecure-registries":["192.168.56.101:5000"] }

[root@local ~]# vim /etc/docker/daemon.json

f0c802f3e01ef49a31b4ac73ac1d48b8.png

重启 docker:

[root@local ~]# systemctl daemon-reload

[root@local ~]# systemctl restart docker.service

验证insecure-registries 添加成功:

[root@local ~]# docker info

127ed3e02ed71bd2df4e960ff32641ab.png

2. 对整个MallManagement 项目,进行maven build 操作:(可略过)

c3dfd722b2f391f7381de951877f8a6c.png

mvn clean package --- 仅仅构建 jar 包,验证代码是否正常。

8ac6504c48fabfc03db93504c8c659e3.png

[INFO] microservice-mallmanagement 0.0.1-SNAPSHOT ......... SUCCESS [ 1.553 s]

[INFO] microservice-eureka-server ......................... SUCCESS [ 6.306 s]

[INFO] microservice-gateway-zuul .......................... SUCCESS [ 2.164 s]

[INFO] microservice-orderservice .......................... SUCCESS [ 4.694 s]

[INFO] microservice-userservice 0.0.1-SNAPSHOT ............ SUCCESS [ 2.384 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 18.801 s

[INFO] Finished at: 2018-06-08T13:09:48+08:00

3. Docker Client(在Windows 10 系统)向 Docker Registry 推送镜像:(可略过)

针对单个项目,构建 image镜像。注意:需要在子项目的根目录下面,执行下面的命令,不能在项目的根目录。

D:GithubSpringCloudDockermicroservice-mallmanagementmicroservice-eureka-server>mvn dockerfile:build

下面是构建 eureka server image 镜像。

094830068f9e0c3d4ca97ee948c9c7da.png

[INFO] Detected build of image with id 47302f5bfdea

[INFO] Building jar: D:GithubSpringCloudDockermicroservice-mallmanagementmicroservice-eureka-serverargetmicroservice-eureka-server-0.0.1-SNAPSHOT-docker-info.jar

[INFO] Successfully built 192.168.56.101:5000/microservice-eureka-server:0.0.1-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 17.412 s

[INFO] Finished at: 2018-06-08T13:14:26+08:00

[INFO] ------------------------------------------------------------------------

如上述命令出现异常,也可以通过 docker build 命令行,手工构建镜像(需要到dockerfile 子项目目录下执行):

D:GithubSpringCloudDockermicroservice-mallmanagementmicroservice-eureka-server>docker build -t 192.168.56.101:5000/microservice-eureka-server:0.0.1-SNAPSHOT .

可以略过下面的步骤,直接使用 mvn clean install 来完成整个项目的 images 镜像推送。

D:>docker push 192.168.56.101:5000/microservice-eureka-server

The push refers to repository [192.168.56.101:5000/microservice-eureka-server]

bfd212a869c0: Pushed

73ad47d4bc12: Pushed

c22c27816361: Pushed

04dba64afa87: Pushed

500ca2ff7d52: Pushed

782d5215f910: Pushed

0eb22bfb707d: Pushed

a2ae92ffcd29: Pushed

4. mvn clean install -- 对整个MallManagement 项目构建images镜像,并推送到 docker registry 中。

D:GithubSpringCloudDockermicroservice-mallmanagement>mvn install 或者 mvn clean install

e351d4f8a03613a3eb18197c3c56ecd5.png

[INFO] Reactor Summary:

[INFO]

[INFO] microservice-mallmanagement 0.0.1-SNAPSHOT ......... SUCCESS [ 1.481 s]

[INFO] microservice-eureka-server ......................... SUCCESS [ 23.748 s]

[INFO] microservice-gateway-zuul .......................... SUCCESS [ 19.344 s]

[INFO] microservice-orderservice .......................... SUCCESS [ 16.014 s]

[INFO] microservice-userservice 0.0.1-SNAPSHOT ............ SUCCESS [ 35.721 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 01:37 min

[INFO] Finished at: 2018-06-08T14:23:22+08:00

[INFO] ------------------------------------------------------------------------

docker images -- 查看构建完成的images 镜像

D:GithubSpringCloudDockermicroservice-mallmanagement>docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

192.168.56.101:5000/microservice-userservice 0.0.1-SNAPSHOT db5d7e7b3902 About an hour ago 354MB

192.168.56.101:5000/microservice-orderservice 0.0.1-SNAPSHOT 06e8f2c4d4f8 About an hour ago 355MB

192.168.56.101:5000/microservice-gateway-zuul 0.0.1-SNAPSHOT 3b2c1dc25574 About an hour ago 351MB

192.168.56.101:5000/microservice-eureka-server 0.0.1-SNAPSHOT 5e200ceaa8ce About an hour ago 351MB

访问 http://192.168.56.101:5000/v2/_catalog,查看registry 仓库中的镜像列表:

{

repositories: [

"microservice-eureka-server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值