docker-compose部署dubbo+zookeeper项目

Dubbo 不单单只是高性能的 RPC 调用框架,更是 SOA 服务治理的一种方案。

  1. 远程通信,向本地调用一样调用远程方法。
  2. 集群容错
  3. 服务自动发现和注册,可平滑添加或者删除服务提供者。
    我们常常使用 Springboot 暴露 HTTP 服务,并走 JSON 模式。但慢慢量大了,一种 SOA 的治理方案。这样可以暴露出 Dubbo 服务接口,提供给 Dubbo 消费者进行 RPC 调用。

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

docker-compose部署dubbo+zookeeper项目

Dubbo在Docker中部署时向注册中心注册的是Docker实例的IP地址,通常为:172.128.0.*,而不是宿主机的ip地址,这样如果微服务需要跨宿主机调用的话,则是调用不到的,因此就需要让dubbo在向注册中心注册服务的时候,使用的ip地址是宿主机的ip地址。

dubbo 可以通过下面的属性,在启动docker的时候进行设置

  • DUBBO_IP_TO_REGISTRY — 注册到注册中心的IP地址
  • DUBBO_PORT_TO_REGISTRY — 注册到注册中心的端口
  • DUBBO_IP_TO_BIND — 监听IP地址
  • DUBBO_PORT_TO_BIND — 监听端口
version: '3'
services:
  server1:
    image: carve/provider-server:latest
    container_name: providerServer
    build:
      context: ./provider
      dockerfile: Dockerfile
    restart: always
    working_dir: /app
    ports:
      - "8001:8080"
      # 前面为注册到注册中心的端口,后面为docker监听的端口
      - "20881:20881"
    environment:
      TZ: Asia/Shanghai
      # 注册到注册中心的IP,这里我们选择公网IP
      DUBBO_IP_TO_REGISTRY: 45.77.245.17
      # 注册到注册中心的端口
      DUBBO_PORT_TO_REGISTRY: 20881
      DUBBO_PORT_TO_BIND: 20881
  server2:
    image: carve/consumer-server:latest
    container_name: consumerServer
    build:
      context: ./consumer
      dockerfile: Dockerfile
    restart: always
    working_dir: /app
    ports:
      - "8002:8080"
      # 前面为注册到注册中心的端口,后面为docker监听的端口
      - "20882:20882"
    environment:
      TZ: Asia/Shanghai
      # 注册到注册中心的IP,这里我们选择公网IP
      DUBBO_IP_TO_REGISTRY: 45.77.245.17
      # 注册到注册中心的端口
      DUBBO_PORT_TO_REGISTRY: 20882
      DUBBO_PORT_TO_BIND: 20882

如果 consumer 启动失败了,可能的原因是 provider 还没注册到zookeeper,这时可以重启 consumer 容器,使用docker-compose里的restart: always,如果是springboot jar包部署的可以用shell脚本暂停几秒钟再启动,或者用自启动的方式监听端口,如果不存在,则启动项目

启动项目

# 重新编译docer
docker-compose build --no-cache
# 启动
docker-compose up
# 关闭
docker-compose down
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值