美文网首页
docker在dubbo项目中的配置

docker在dubbo项目中的配置

作者: 雨中星辰0 | 来源:发表于2018-12-01 08:23 被阅读0次

    某些部署方案需要动态指定服务注册的地址。例如,docker bridge网络模式需要指定用于外部网络通信的注册主机IP。Dubbo在启动阶段提供两对系统属性,用于设置外部通信的IP和端口地址。

    • DUBBO_IP_TO_REGISTRY --- 注册到注册中心的IP地址
    • DUBBO_PORT_TO_REGISTRY --- 注册到注册中心的端口
    • DUBBO_IP_TO_BIND --- 监听IP地址
    • DUBBO_PORT_TO_BIND --- 监听端口
    1. 以上四种配置是可选的。如果没有配置,Dubbo将自动获得IP和端口。请根据部署方案灵活选择。
    2. Dubbo支持多协议。如果应用程序同时公开多个不同的协议服务,并且需要为每个服务单独指定IP或端口。请分别在上述属性之前添加协议前缀。例如:
    • HESSIAN_DUBBO_PORT_TO_BIND hessian 协议绑定端口
    • DUBBO_DUBBO_PORT_TO_BIND dubbo dubbo协议绑定端口
    • HESSIAN_DUBBO_IP_TO_REGISTRY hessian协议注册IP
    • DUBBO_DUBBO_IP_TO_REGISTRY dubbo协议注册IP
    1. PORT_TO_REGISTRY 或者 IP_TO_REGISTRY不会被用作默认 PORT_TO_BIND or IP_TO_BIND,但反之亦然。
    • 如果设置PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6,则 PORT_TO_BIND IP_TO_BIND不会受到影响。
    • 如果设置PORT_TO_BIND=20881 IP_TO_BIND=30.5.97.6,则 PORT_TO_REGISTRY=20881 IP_TO_REGISTRY=30.5.97.6 默认为。

    dubbo-docker-sample 本地操作过程:

    1. 将项目克隆到本地
    git clone git@github.com:dubbo/dubbo-docker-sample.git
    cd dubbo-docker-sample
    
    1. 打包当地的maven
    mvn clean install  
    
    1. 通过docker build构建一个镜像
    docker build --no-cache -t dubbo-docker-sample . 
    

    Dockerfile

    FROM openjdk:8-jdk-alpine
    ADD target/dubbo-docker-sample-0.0.1-SNAPSHOT.jar app.jar
    ENV JAVA_OPTS=""
    ENTRYPOINT exec java $JAVA_OPTS -jar /app.jar
    
    1. 从镜像创建和运行容器
    # 由于我们使用zk注册中心,首先我们启动zk容器
    docker run --name zkserver --restart always -d zookeeper:3.4.9
    
    docker run -e DUBBO_IP_TO_REGISTRY=30.5.97.6 -e DUBBO_PORT_TO_REGISTRY=20881 -p 30.5.97.6:20881:20880 --link zkserver:zkserver -it --rm dubbo-docker-sample
    

    假设主机IP为30.5.97.6。
    设置提供程序以通过环境变量注册注册中心的IP地址和端口 DUBBO_IP_TO_REGISTRY=30.5.97.6 DUBBO_PORT_TO_REGISTRY=20881
    实现端口映射-p 30.5.97.6:20881:20880, 其中 20800 是dubbo自动选择的侦听端口。没有监控IP配置,因此它将监听0.0.0.0(所有IP)。
    启动后,提供者的注册地址为 30.5.97.6:20881, 容器的监听地址为: 0.0.0.0:20880

    1. 测试
      另一个主机或容器执行
    telnet 30.5.97.6 20881
    ls
    invoke com.alibaba.dubbo.test.docker.DemoService.hello("world")
    

    以上内容翻译自:
    https://github.com/dubbo/dubbo-samples/tree/b95ca08af9f207116ec70631559df4073fe4d75e/dubbo-samples-docker

    相关文章

      网友评论

          本文标题:docker在dubbo项目中的配置

          本文链接:https://www.haomeiwen.com/subject/jurlcqtx.html