在Docker上部署Zookeeper+Dubbo+SpringCloud遇到的问题

前言

同学发的一个springcloud项目,在本地运行成功,试图将它部署到docker上。买的是学生服务器,第一次尝试,文章可能会有很多错误,请谅解。

服务器:阿里云 2核2GB Docker:19.03

问题

1、分别部署了zookeeper dubbo之后,再部署微服务,但是微服务一启动,zookeeper和dubbo会挂掉

2、经常出现exited(137)

3、微服务会不断重新启动,注册不到dubbo上

解决

1、所有用到的端口,要在 阿里云的安全组 中添加规则,开放端口

2、外网连接zookeeper前,需要

①hostname 获得本机的hostname

②vi /etc/hosts 添加

本机外网IP 本机的hostname

3、因为zookeeper会把外网的IP和本机的IP映射错误,比如:

dubbo.registry.address=zookeeper://你的外网IP:2181
dubbo.registry.timeout=5000
dubbo.registry.protocol.name=dubbo

微服务中用到zookeeper的外网IP,会连接不上

所以需要在zoo.cfg文件中加quorumListenOnAllIPs=true

4、增加虚拟内存

  1. 创建swap分区 : dd if=/dev/zero of=/swapfile count=2048 bs=1M
  2. 激活swap分区 :chmod 600 /swapfile mkswap /swapfile
  3. 开启swap分区:  swapon /swapfile
  4. 设置允许开机启用swap分区 : sudo vi  /etc/fstab

TIPS

微服务部署时,可以使用docker-compose

1、安装docker-compose。

docker-compose-Linux-x86_64 下载地址:https://dn-dao-github-mirror.daocloud.io/docker/compose/releases

mkdir /usr/local/bin/docker-compose
将下载好的docker-compose-Linux-x86_64 放入文件夹
sudo chmod +x /usr/local/bin/docker-compose 
docker-compose-v #检查是否安装成功

2、创建docker-compose.yml文件,docker-compose格式

#版本可以为2 或 3
version: '2' 
services:
  #名字
  auth-service:
    image: auth-service:1.0 #镜像
    tty: true  #防止容器启动又停止
    restart: always #容器exited后,自动重启
    mem_limit: 2G
    mem_reservation: 200M
    ports:
      - 8079:8079
      - 20882:20882
    environment:
      # 注册到注册中心的IP,这里我们选择宿主机的IP
      DUBBO_IP_TO_REGISTRY: 宿主机的IP
      # 注册到注册中心的端口
      DUBBO_PORT_TO_REGISTRY: 20882
      DUBBO_PORT_TO_BIND: 20882

3、在docker-compose.yml所在文件夹,启动 docker-compose

命令: docker-compose up -d

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值