docker真实IP解决

背景

在微服务的环境中使用docker部署各个应用,部分应用使用容器内的真实ip暴露出服务。会导致微服务之间调用出现网络超时,要解决这个问题需要让微服务暴露为宿主机的ip

解决

方式一

使用docker-compose的配置 network_mode: "host"

emqx-auth:container_name: "xxApp"network_mode: "host"image: imagerestart: alwaysenvironment:TZ: "Asia/Shanghai"APP_SERVICE: "gateway-v3-3.0.1-SNAPSHOT"START_COMMAND: "--spring.config.location=classpath:bootstrap.yml,/conf/base.yml,/conf/emqx-auth.yml"JAVA_OPTS: "-Xms512m -Xmx1024m"NACOS_IP: $NACOS_IPvolumes:- "/cloud/service:/cloud/service"networks:- bridge1

方式二

使用docker 创建容器时指定参数 --network host

docker run image --network host --port 8080:8080 --name xxApp -d

方式三

如果使用的是nacos做注册中心、可在各个应用内部通过配置项指定host参数

spring.cloud.nacos.discovery.ip=192.168.12.32

在使用dubbo时也可以通过下面两种方式解决

暴露服务指定host

<dubbo:protocol name="dubbo" port="20890" host="主机地址"/>

设置环境变量

# DUBBO_IP_TO_BIND = 主机地址
docker run -e DUBBO_IP_TO_BIND=30.5.97.6  -p 30.5.97.6:20881:20880 --name xxApp -d
不在docker环境直接设置系统的环境变量即可。

总结:

1、	可以通过dubbo.protocol或dubbo.provider的host属性对host进行配置,支持IP地址和域名.但此时注册到注册中心的IP地址和监听IP地址是同一个值2、	为了解决在虚拟环境或局域网内consumer无法与provider通信的问题,可以通过 环境变量 分别设置注册到注册中心的IP地址和监听IP地址,其优先级高于dubbo.protocol或dubbo.provider的host配置

官网参考:主机自定义

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC之CRUD(增删改查)

SpringMVC之CRUD(增删改查) 数据库 # 创建表CREATE TABLE Student (sid INT PRIMARY KEY,sname VARCHAR(50),sage INT,spic VARCHAR(255));给student表插入数据 INSERT INTO Student (sid, sname, sage, spic) VALUES (1, John Do, 25, path/to/image1.jpg), (2, Jane Smith, …

IIS解析漏洞复现

文章目录 漏洞复现总结 漏洞复现 打开虚拟机&#xff0c;在C:\inetpub\wwwroot\8000_test目录下放一个phpinfo.php文件&#xff1a; 在服务器管理器中打开IIS管理器&#xff0c;选择处理映射程序&#xff1a; 点击添加模块映射&#xff1a; 配置映射模板&#xff0c;php文件…

个人简历a

赖国尚 个人信息 性别&#xff1a;男                      年龄&#xff1a;23手机&#xff1a;15766355301           邮箱&#xff1a;1540302412qq.com期望岗位&#xff1a;音视频开发工程师    期望薪资&#xff1a;面议 教育背景…

【AI】数学基础——最优化

从本质上讲&#xff0c;人工智能的目标就是最优化——在复杂环境中与多体交互中做出最优决策 几乎所有的人工智能问题都会归结为一个优化问题 在线性搜索中&#xff0c;确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数置信域的思想是先确定搜索步长&#xff0…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(一)

&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡‎&#xfecc;&#xfecc;&#xfecc;&#xfecc;♡&#xfecc;&#xfecc;&#xfecc;&#xfecc;…

Qt使用注意事项

1.菜单选项不能出现数字&#xff0c;可以是 英文 加 “_”&#xff1a; 2.如何确保加载的图片&#xff0c;尺寸大小与原来一样&#xff1f; 【QT】添加图片资源并使用QImage加载图片显示_qimage显示图片_李春港的博客-CSDN博客 ui->PicLabel->setPixmap(QPixmap::fromIm…

K8s的网络——underLay和overLay网络

0. 基础知识 1&#xff09;网络7层基础知识 在网络7层协议基础里&#xff0c; 第一层物理链路&#xff1b;第二层是数据链路层&#xff0c;在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性&#xff0c;主机A发送数据时&#xff0c;会向局域网内进行广播…

QT生成ICO文件

生成ICO文件 #include <QApplication> #include <QImage> #include <QIcon> #include <QFile> #include <QDebug> #include <QPixmap>int main(int argc, char* argv[]) {QApplication app(argc, argv);// 读取图片文件QImage image(&quo…

Python基本情况

Python&#xff08;发音&#xff1a;/ˈpaɪθən/ &#xff09;是一种强大的编程语言&#xff0c;它简单易学&#xff0c;提供众多高级的数据结构&#xff0c;让我们可以面向对象进行编程。Python 的语法优雅&#xff0c;由于是一个解释性语言&#xff0c;更贴近人类自然语言&…

IDEA编写Java编程代码提示插件

网址&#xff1a; aiXcoder idea软件中使用代码提示&#xff1a; aixcoder

uniapp使用@microsoft/signalr(报错“ReferenceError: require is not defined“)

后台老哥要用微软的signalr&#xff0c;总结了一些经验和问题 引入方法 1、npm npm i microsoft/signalr 2、下载他的js或者cdn <script src"https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/6.0.1/signalr.js"></script>在uniapp中&…

Python vs C#:首先学习哪种编程语言最好?

进入编码可能很困难。 最艰难的部分? 决定先学什么语言。 当谈到 Python 与 C# 时,可能很难知道在您的决定中要考虑哪些因素。 我们为您提供了有关这些全明星编程语言的所有信息。 什么是 C#? 自 2000 年作为 Microsoft Visual Studio 的一部分开发 C# 以来,它一直是开发人…

Vue前端框架11 组件事件与v-mode配合使用、组件数据传递(父传子)、插槽Slot、具名插槽、插槽中的数据传递(双向)

文章目录 一、组件事件与v-model配合使用二、组件数据传递&#xff08;子传父&#xff09;三、插槽Slots四、具名插槽五、插槽中的数据传递 一、组件事件与v-model配合使用 组件A的数据变化 组件B可以实时显示 <template><h3>Main</h3><p>搜索内容为…

Postman使用_Tests Script(断言测试)

断言测试可以在Collection、Folder和Request的 pre-request script 和 test script中编写&#xff0c;测试脚本可以检测请求响应的各个方面&#xff0c;包括正文、状态代码、头、cookie、响应时间等&#xff0c;只有测试符合自定义的要求后才能通过。 pm对象提供了测试相关功能…

常用的8位单片机+2.4g遥控芯片的“化学”反应

8位单片机通常是微控制器&#xff0c;它们具有相对简单的处理能力&#xff0c;但对于许多嵌入式系统和低复杂度应用而言&#xff0c;它们足够使用。这些芯片通常具有较低的功耗&#xff0c;价格相对实惠。 2.4GHz无线通信芯片&#xff0c;则具备强大的无线通信能力。它们可以实…

golang获取时区报错的问题

golang<1.20版本的time包 time.LoadLocation(timezone) 读取某些时区会报错&#xff0c;升级到1.20可以解决 顺便&#xff0c;某些开发把error直接置为_隐藏掉的习惯真的差评 func Test3(t *testing.T) {timezone : "America/Ciudad_Juarez"timezone "Euro…

van-button根据参数改变字体颜色,实现高度自定义

本来van-button没有属性去单独自定义字体颜色。通过研究&#xff0c;我发现可以通过:style来实现这一需求。 <van-button class"case-btn" :color"item.BtnBgColor":style"{ color : item.BtnColor }"click"jumpToUrl(item)" >…

datax同步clickhouse数据到hive

1.准备数据 1.1 clickhouse建表并插入数据 CREATE TABLE cell_towers_10 (radio Enum8( = 0, CDMA = 1,

windows 下docker安装宝塔镜像 宝塔docker获取镜像

1. docker 安装宝塔 打开链接&#xff1a;https://www.docker.com/get-started&#xff0c;找对应的版本下载docker&#xff0c;安装docker打开百度云盘&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1DGIjpKkNDAmy4roaKGLA_w 提取码&#xff1a;u8bi 2. 设置镜像 点…

java设计模式之观察者模式

. 基本概念 观察者&#xff08;Observer&#xff09;模式中包含两种对象&#xff0c;分别是目标对象和观察者对象。在目标对象和观察者对象间存在着一种一对多的对应关系&#xff0c;当这个目标对象的状态发生变化时&#xff0c;所有依赖于它的观察者对象都会得到通知并执行它…