使用ambassador实现container跨主机通信

实验容器:
主机A:Redis Server和Ambassador1
主机B:Redis Client和Ambassador2

通信流程:
1.Ambassador1容器通过link方式确定Redis Server容器的ip地址和开放的6379端口,然后利用socat将容器内部的6379端口收到的信息重定向到RedisServer容器的6379端口;

2.主机A将自己的6379端口绑定到Ambassador1容器的6379端口;

3.Ambassador2通过传入环境变量的方式确定主机A的ip地址和6379端口,然后利用socat将容器内部的6379端口收到的信息重定向到主机A的6379端口;

4.Redis Client容器通过link方式确定Ambassador2容器的ip地址和开放的6379端口,然后用redis-cli直接连接,连接请求将经过Ambassador2、Ambassador1,最后发送到Redis Server的6379端口

操作流程:
1.启动redis server容器
主机A:docker run -d –name redis learn01/redis

2.启动Ambassador1容器,将redis server容器的6379端口及Ambassador1容器的6379端口绑定,并将Ambassador1容器的6379端口和主机A的6379端口绑定
主机A:docker run -d –link redis:redis –name ambassador1 -p 6379:6379 svendowideit/ambassador

3.启动Ambassador2容器,将Ambassador2容器的6379端口和主机A的6379端口绑定
主机B:docker run -d –name ambassador2 –expose 6379 -e REDIS_PORT_6379_TCP=tcp://192.168.2.43:6379 svendowideit/ambassador

4.启动redis-cli容器绑定Ambassador2的6379端口
主机B:docker run -i -t –rm –link ambassador2:redis relateiq/redis-cli

实现原理:
在svendowideit/Ambassador的Dockerfile里面,有一行关键的代码:

CMD env | grep _TCP= | sed 's/.*_PORT_\([0-9]*\)_TCP=tcp:\/\/\(.*\)\(.*\)/socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&/' | sh && top

这行代码的用法是在环境变量中找到包含”TCP”的行,然后将从满足正则表达式”.*_PORT\([0-9]\)_TCP=tcp:\/\/\(.\):\(.*\)”的环境变量中提取ip和端口号,并执行”socat TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \&”,其中/1表示环境变量名中指示端口号,/2表示ip地址,/3表示端口号。这个环境变量之所以这么命名,是由于docker link的机制是将被link的container的ip、端口、协议等信息以环境变量的形式放到link中去。

以Ambassador1为例,我们在启动Ambassador1以后,可以查看里面的环境变量:
这里REDIS_PORT_6379_TCP=tcp://192.168.2.43:6379就是用于提取信息的环境变量,其中REDIS为Redis Server的在Ambassador1中的别名,是我们在link的时候制定的;6379为Redis Server开放的6379端口,用于提供Redis服务;192.168.2.43为Redis Server的ip地址。如此,Ambassador1就能知道Redis Server服务的ip和端口,就能通过socat将redis访问请求转发给Redis Server。同理,我们就可以建立Redis Client——Ambassador2——Ambassador1——Redis Server的连接。
这种方式有一个缺点,就是在Ambassador2和Ambassador1建立连接的时候,Ambassador2必须要知道Ambassador1所在主机A的ip地址,从而硬编码设置环境变量REDIS_PORT_6379_TCP,这样灵活性就比较差,并且当我们不知道主机A的ip地址时,这种方法是无法使用的。

内容概要:本文围绕基于三电平ANPC构网型逆变器的虚拟同步控制策略展开研究,重点探讨了其在Simulink环境下的仿真实现方法。研究聚焦于虚拟同步发电机(VSG)控制、双闭环控制及中点电位平衡控制等核心技术,旨在提升高渗透率新能源背景下逆变器的惯量支撑能力和电能质量。通过构建详细的系统模型,提出并优化控制策略,有效解决了三电平逆变器在动态响应、稳定性及中点电压波动等方面的挑战,增强了系统对复杂电网工况的适应能力。研究进一步结合VSG的虚拟惯量与阻尼特性,实现对电网频率波动的有效抑制,并通过双闭环结构提升电流跟踪精度与功率调节性能,同时引入中点电位平衡控制策略,确保多电平拓扑输出电压对称性与可靠性。; 适合人群:具备电力电子、自动控制或新能源发电相关背景,从事科研或工程开发的研发人员,尤其是关注构网型逆变器、虚拟同步技术及多电平拓扑控制的研究生与工程师。; 使用场景及目标:①应用于新能源并网系统中构网型逆变器的设计与仿真;②为提升电力系统稳定性提供虚拟同步控制方案;③实现三电平ANPC逆变器中点电位的有效平衡与动态性能优化; 阅读建议:建议结合Simulink仿真模型进行实践操作,重点关注控制策略的实现细节与参数整定过程,同时可参考文中提到的双闭环结构与VSG控制逻辑进行扩展研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值