因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题,就是dubbo会去获取 /etc/hosts 下面的 hostname 对应的IP地址作为 zookeeper 注册中心注册的 IP 地址,由于 docker 容器的 IP 是 172.17.0.2, 那注册到 zookeeper 的 IP 也就是 172.17.0.2 了。
那问题就来了,172.17.0.2 是 docker 容器的 IP, 容器外面是无法访问的,我的解决方案很简单,就是更改容器的 hostname 及其映射的 IP 来使得 dubbo 可以注册宿主的 IP 地址。
我是使用 docker-compose 来启动的, 在 docker-compose.yml 中添加 environment 和 extra_hosts 两个参数即可解决:
1
2
3
4
5
6
7
8
9
10
11
|
dubbo-service-provider: image: johnd/dubbo-service-provider:latest
ports:
- 9090:9090
- 20880:20880
environment:
HOSTNAME: dubbo-service-provider
extra_hosts:
dubbo-service-provider: 192.168.0.100
|
然后运行 docker-compose up 命令,可以看到 dubbo 已经注册了正确的 IP 地址:
[DUBBO] Register: dubbo://192.168.0.100:20880/com.johnd.dubbo.service.api.SayHelloToJohn
如果你是用 docker run 来运行 docker 容器,也可以添加相应的命令行参数。
------------------------------------------------------------------------------------------------------------
更新:
其实可以有更简单的处理办法,就是直接使用主机网络,在docker-compose的配置文件添加 net: host 配置。
dubbo-service-provider:
image: johnd/dubbo-service-provider:latest
net: host
ports:
- 9090:9090
- 20880:20880
相关推荐
仅供自己参考学习 docker dubbo 消费容器提供的服务 居然要50个字
根据自身的搭建,总结了一个关于docker + springboot + dubbo的发布提供者的文档
dubbox-master dubbo 源码 v2.8.4 ,dubbo直接是jar包,里面还有tomcat7和zookeeper3.4.6的tar包,本包没有安装教程
dubbo-admin是dubbo框架的管理平台,下面这篇文章主要给大家介绍了关于Docker如何多步构建生成dubbo-admin镜像的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
基于Java的微服务实践,单体微服务创建、Docker部署、Dubbo微服务实践等.zip 基于Java的微服务实践。包括Spring Boot开发Web应用、Sping Boot的Docker部署、Dubbo微服务实践等。 示例代码 spring-boot-jpa-...
使用docker-compose即可运行,文章地址https://blog.csdn.net/qq_33309098/article/details/118119248
如何零基础搭建一套微服务框架(Spring Boot+Dubbo+Docker+Jenkins)
NULL 博文链接:https://crabdave.iteye.com/blog/2363576
dubbo-monitor-simple
这是描述dubbo+zookeeper+springboot微服务的例子,已经验证过,可以通过docker安装部署
本套视频从分布式系统的基本概念出发,由浅入深,讲解了RPC原理,Dubbo基本使用,Dubbo高可用场景以及Dubbo原理,涉及了分布式系统中服务注册、服务发现、负载均衡、灰度发布、集群容错、服务降级等核心概念的讲解及...
Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包Docker 包...
基于SpringBoot+Dubbo的微服务框架-SpringBoot-Dubbo-Docker-Jenkins
incubator-dubbo-ops-master.rar dubbo-admin 控制台 与 dubbo-monitor-simple 可视化监控
离线环境下,在centos7.6系统上安装docker-ce-19.03,nvidia-docker2.4版本,其中docker-ce-19.03在docker-local.tar压缩文件里面,nvidia-docker2在nvidia-docker2.zip文件中。 具体安装流程如下: 1.安装docker ...
你的各个微服务将采用目前处于浪潮之巅的Docker来实现容器化部署,避免一切因环境引起的各种问题,让你们团队的全部精力集中在业务开发上。 自动化构建 项目被微服务化后,各个服务之间的关系错中复杂,打包构建的...
Docker 常用命令查看Docker版本从Docker文件构建Docker映像运行Docker映像docker run -d image-name查看可用的D
运用SpringBoot+Dubbo+Zookeeper实现的分布式微服务,分服务端与客户端。