docker swarm部署spring-cloud服务集群

一.前言

上篇我们讲了如何在docker swarm上搭建一个高可用的eureka服务,本篇博客讲述如何搭建多节点多容器的其他服务

二.服务分类

zuul:网关服务

base-info:主数据、登录相关

oauth:授权

2.1 zuul网关搭建:

先创建zuul的栈文件:touch /usr/zuul.yml(位置随意)

zuul.yml内容:

docker swarm部署spring-cloud服务集群_第1张图片

version: '3'
services:
  zuul:
    image: 192.168.1.119/demo/zuul:latest
    networks:
      spring-cloud-overlay:
        aliases:
          - zuul
    deploy:
      replicas: 2
    ports:
      - 8085:8085
    environment:
      - EUREKA_SERVER_ADDR=eureka

networks:
  spring-cloud-overlay:
    external:
      name: spring-cloud-overlay                   

 

修改zuul yml文件:

docker swarm部署spring-cloud服务集群_第2张图片

zuul Dockerfile文件:

docker swarm部署spring-cloud服务集群_第3张图片

pom文件修改:可参照上篇eureka服务搭建。

zuul代码修改完毕后,mvn clean -> mvn package ->docker build ->docker push到镜像库(具体操作见上篇博客

镜像上传完毕后,登录docker swarm manager节点拉取镜像:

docker pull 192.168.1.119/demo/zuul:latest

 docker swarm部署spring-cloud服务集群_第4张图片

镜像拉取(仅manager节点拉取即可)完毕后:

docker stack deploy -c zuul.yml demo

执行完毕后查看服务列表:

docker service ls

docker swarm部署spring-cloud服务集群_第5张图片

查看服务日志:docker service logs demo_zuul

查看服务容器落在哪些节点:docker service ps demo_zuul 

 

查看服务属性信息:docker inspect demo_zuul 或 id

查看容器信息:docker inspect 容器name | 容器id

2.2 base-info服务搭建

步骤同上,唯一区别:

docker swarm部署spring-cloud服务集群_第6张图片

2.3 oauth 服务搭建

同base-info

三.效果与测试

搭建完毕后查看eureka客户端:

docker swarm部署spring-cloud服务集群_第7张图片

执行登录操作调用base-info登录方法返回token:

docker swarm部署spring-cloud服务集群_第8张图片 

 以上我们会发现我们的网关服务只有两个节点,但是请求:

192.168.1.110:8085/baseinfo/userlogin/login、192.168.1.111:8085/baseinfo/userlogin/login、192.168.1.112:8085/baseinfo/userlogin/login均可返回token。这是因为docker swarn会根据暴露的端口去轮询docker swarn集群中部署的节点,直到找到部署了zuul服务的容器去执行api请求。

 

你可能感兴趣的:(docker,spring,cloud)