因为要部署 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
相关推荐
【标题】"dubbo2.8.4+zookeeper3.4.6+控制中心懒人包" 提供了一个集成的解决方案,将流行的Java微服务框架Dubbo 2.8.4与分布式协调服务Zookeeper 3.4.6以及一个控制中心结合在一起。这个懒人包简化了开发者的配置...
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
【Dubbo Monitor Simple】是Dubbo框架中的一个关键组件,主要功能是提供服务监控与管理。Dubbo是一款高性能、轻量级的开源Java RPC框架,它由阿里巴巴开发并维护,旨在提高服务治理的效率和质量。Monitor Simple是...
如何零基础搭建一套微服务框架(Spring Boot+Dubbo+Docker+Jenkins)
dubbo注册中心服务ip和实际服务提供者ip不一致问题 网上收集的资料
NULL 博文链接:https://crabdave.iteye.com/blog/2363576
这是描述dubbo+zookeeper+springboot微服务的例子,已经验证过,可以通过docker安装部署
本套视频从分布式系统的基本概念出发,由浅入深,讲解了RPC原理,Dubbo基本使用,Dubbo高可用场景以及Dubbo原理,涉及了分布式系统中服务注册、服务发现、负载均衡、灰度发布、集群容错、服务降级等核心概念的讲解及...
读书笔记:基于Java的微服务实践单体微服务创建、Docker部署、Dubbo微服务实践等
《Apache Incubator Dubbo-OPS Master:深度解析与实践》 Apache Incubator Dubbo-OPS Master 是一套由Dubbo社区开发的管理工具,旨在为Dubbo服务提供全面的运营管理和监控支持。Dubbo,作为一款高性能、轻量级的...
【标题】: "基于SpringBoot+Dubbo的微服务框架-SpringBoot-Dubbo-Docker-Jenkins.zip" 提供了一个综合的微服务开发解决方案,结合了SpringBoot、Dubbo、Docker和Jenkins四个核心组件。这四个技术在现代IT行业中扮演...
本项目"springBoot+dubbo+zookeeper分布式微服务"充分利用了这三个组件的优势,构建了一个高效、可扩展且易于维护的服务网络。以下是对这些技术及其整合应用的详细说明: **SpringBoot** SpringBoot是Spring框架的...
【压缩包子文件的文件名称列表】:虽然列表中只有一个文件名"docker-admin",但通常一个Web应用的压缩包会包含以下几类文件: 1. HTML、CSS和JavaScript文件:构成用户界面的静态资源。 2. JSP或Servlet文件:处理...
安装docker 获取root 权限 su root 拷贝所有文件到 /opt/docker/ (如果没有 docker目录执行 mkdir -p /opt/docker) yum localinstall -y /opt/docker/*.rpm 安装docker-compose cd /opt/docker/ tar ...