lua - 我应该使用带有 docker 的 Tarantool Cartridge 应用程序设置网络地址吗?

标签 lua tarantool cartridge tarantool-cartridge

应用使用docker pack时,应该如何配置网络地址?

最佳答案

tarantool cartridge 中的网络连接逻辑不取决于您使用的是常规虚拟机还是 Docker。您需要您的 tarantool 实例能够通过 TCP 和 UDP 相互访问。

在 Docker 中,它意味着:

在同一个内部网络上设置容器

并使用内部网络地址将实例连接在一起。默认情况下,同一内部网络上的实例将能够通过任何 tcp/udp 端口​​相互访问。如果您希望多台机器共享同一个内部网络,您可以配置 Docker Swarm,这将为您提供一个跨越多台机器的所谓“覆盖网络”。

绑定(bind)主机端口

运行容器时,可以通过-p 3301:3301/tcp -p 3301:3301/udpdocker run .它会暴露一个端口从容器到主机上的外部网络。务必始终公开 udp 端口​​,否则实例将无法通过八卦协议(protocol)相互通信。

除此之外,由于您将实例的公共(public)地址更改为主机的 IP 而不是内部容器的 IP,因此您还需要指定其他参数来更改 tarantool 实例的广告 URI。您可以使用以下选项来做到这一点 docker run : -e TARANTOOL_ADVERTISE_URI=<your_host_ip>:3301 .

关于lua - 我应该使用带有 docker 的 Tarantool Cartridge 应用程序设置网络地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62085474/

相关文章:

python - Decimal 不可 JSON 序列化

algorithm - 检查十六进制是否在具有加权六角形的六角形平铺范围内

lua - 如何加载不同文件夹中的模块

lua - 如何避免 init 函数失败时注册 box.once ('init' , function ...) ?

go - 如何使用 Go 连接器将 Tarantool 选择结果序列化为就绪结构

python - 使用 Python 3.4 的 Openshift 自定义墨盒

django测试客户端总是返回301

loops - Love2d:如何保留窗口内容?

multithreading - Lua协程还有什么用?为什么此代码无法按我预期的那样工作?