docker swarm部署spring-cloud服务集群

一.前言

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

二.服务分类

zuul:网关服务

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

oauth:授权

2.1 zuul网关搭建:

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

zuul.yml内容:

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文件:

zuul Dockerfile文件:

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

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

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

docker pull 192.168.1.119/demo/zuul:latest

 

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

docker stack deploy -c zuul.yml demo

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

docker service ls

查看服务日志:docker service logs demo_zuul

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

 

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

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

2.2 base-info服务搭建

步骤同上,唯一区别:

2.3 oauth 服务搭建

同base-info

三.效果与测试

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

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

 

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

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请求。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值