docker swarm+spring cloud 配置高可用的

2018-05-09  本文已影响298人  785ac245e5c9

在2台服务器上部署,最终实现效果:

2台eureka互相注册,1台挂掉后另一台继续工作,且服务提供正常

放上配置:

eureka的yml配置

client的yml配置

其中${ADDITIONAL_EUREKA_SERVER_LIST},${EUREKA_SERVER_ADDRESS}均为启动docker service时传入

踩过的坑:

不知道为啥,我按照网上教程,用编排文件单机部署没有问题,集群部署非常不稳定,从机的服务可以连上一会,过会就和eureka断开连接了,

不知道是不是swarm的bug

所以改用命令行手敲了

#先在主机创建一个overlay类型的网络,注意要设置子网(--subnet),虽然不设置docker会帮你自动设置,不过有bug

docker network create --driver overlay --subnet 192.168.0.0/16 springcloud-overlay

#在第一台主机启动eureka

docker service create --replicas 1 --name eureka1 --constraint node.hostname==iZbp13yffzt24v6we8mg9kZ --publish 1025:1025/tcp --network=springcloud-overlay -e "ADDITIONAL_EUREKA_SERVER_LIST=http://eureka2:1025/eureka/"  registry.cn-hangzhou.aliyuncs.com/xxxx/eureka:latest

#在第二台主机启动eureka

docker service create --replicas 1  --name eureka2 --constraint node.hostname==iZbp13yffzt24v6we8mg9jZ --publish 1026:1025/tcp --network=springcloud-overlay -e "ADDITIONAL_EUREKA_SERVER_LIST=http://eureka1:1025/eureka/"  registry.cn-hangzhou.aliyuncs.com/xxxx/eureka:latest

client启动

docker service create --replicas 1 -e "EUREKA_SERVER_ADDRESS=http://eureka1:1025/eureka/,http://eureka2:1025/eureka" --name config --network=springcloud-overlay registry.cn-hangzhou.aliyuncs.com/xxxx/config:latest

参数说明

-replicas 副本数量

--name 服务名 

在overlay网络中,可以直接根据服务名找到对应容器,不用配置host文件

--constraint  约束条件

node.hostname  在某台主机上部署

-e 启动时传入环境变量

--network 部署的网络

上一篇 下一篇

猜你喜欢

热点阅读