入门级-最详细的springboot dubbo分布式项目docker部署全过程(四)

一zookeeper服务器的搭建

安装

#拉取镜像
docker pull zookeeper

#运行容器
docker run --privileged=true -d --name zookeeper --publish 2181:2181  -d zookeeper:latest

进行到这一步的linux的容器运行情况,应有redis,mysql,tracker,storage,zookeeper
在这里插入图片描述连接使用zookeeper
服务器配置安全组,暴露2081端口
然后dubbo服务yml配置

#当前服务/应用的名字
dubbo:
  application:
    name: user

  #注册中心的协议和地址
  registry:
    address: 193.112.249.143:2181 #这个端口应该是服务器的外网ip
    protocol: zookeeper

  #通信规则(通信协议和端口口)
  protocol:
    name: dubbo
    port: 20882 #每个服务的协议端口不同

  #连接监控中心
  monitor:
    protocol: register

启动单个服务进行测试服务注册

二.duboo服务部署

博主使用的是MobaXterm工具连接服务器的。同时可以上传文件,比较方便

1.上传jar包至服务器,并编写Dockerfile文件
上传jar包Dockerfile文件内容

# 加载java8进项
FROM java:8
# 作者
MAINTAINER eangulee <[email protected]>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME  /home/tmp

#注意你的包名
# 将jar包添加到容器中并更名为app.jar
ADD app-1.0-SNAPSHOT.jar app.jar 

# 运行jar包
#注意你的包名
RUN bash -c 'touch /app.jar'

#注意你的包名
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

2.然后进入Dockerfile的文件目录下构建镜像

#image-name 是你要取的镜像名字 
docker build -t images-name .

#查看构建的镜像
docker images

大概如下
镜像列表3.运行dubbo服务容器

重点:

  1. 注册ip一定是外网ip
  2. 不同服务器访问服务,一定要使dubbo协议端口对另一台机器暴露。比如 ‘服务提供者-1’ 在linux-1上,zookeeper和‘服务消费者-1’在linux-2上,消费者需要调用服务提供者-1,则‘服务提供者-1’ 的linux-1上需要对linux-2暴露它的dubbo协议端口。
docker run -d --name serviceName -e DUBBO_IP_TO_REGISTRY=30.5.97.6 -e DUBBO_PORT_TO_REGISTRY=20881 -p 2001:2001 -p 20881:20881 imagesName

命令说明
-d  后台运行
--name  设置启动容器的名字
-e DUBBO_IP_TO_REGISTRY=30.5.97.6  这个是设置向zookeeper祖册服务的ip地址,一定要是当前服务所在机器的公网ip地址,不然不同服务器之间会访问不了,因为默认的本机的内网ip地址
-e DUBBO_PORT_TO_REGISTRY=20881  这个是协议的注册端口
-p 2001:2001 -p 20881:20881 对外暴露server端口和dubbo协议端口
serviceName 容器名称
imagesName  要运行的镜像

运行后通过

docker logs -f 容器id或者容器名

查看运行日志,日志输出格式就是项目运行的格式,都是info就对了

后面重复步骤搭建每个dubbo服务镜像,并启动每个服务,建议是先启动单独服务,需要依赖其他服务的后启动,逐个启动便可以在本机上启动前端去测试了。注意服务的安全组哦~~

下面附上我的项目全部启动后的结果

服务部署机器

在这里插入图片描述

各种服务器部署和数个dubbo服务部署机器

在这里插入图片描述温馨提示: 服务器可以从阿里云或者腾讯云获取10块钱每月的学生机器,亚马逊云也是有学生机器的。

本博主是分别在两个地方各买一台才勉强配置完的~~~

后端项目到此部署完了,下一步是如何用docker部署nginx和前端项目的,请看我下一篇文章:nginx部署vue项目,和博主的项目介绍

发布了13 篇原创文章 · 获赞 1 · 访问量 570

猜你喜欢

转载自blog.csdn.net/weixin_38650898/article/details/104517806
今日推荐