docker-compose部署dubbo+zookeeper项目

Posted CarveStone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于docker-compose部署dubbo+zookeeper项目的主要内容,如果未能解决你的问题,请参考以下文章

性能测试二十八:环境部署之Dubbo部署

docker-compose搭建zookeeper集群

dubbo+zookeeper+dubbo管理控制台实践demo

03掌握dubbo环境搭建windows

docker下部署kafka集群(多个broker+多个zookeeper)

zookeeper+dubbo 需要安装tomcat吗