Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dns 分布式系统中的IP地址_Dns_Docker_Cloud_Rabbitmq_Distributed - Fatal编程技术网

Dns 分布式系统中的IP地址

Dns 分布式系统中的IP地址,dns,docker,cloud,rabbitmq,distributed,Dns,Docker,Cloud,Rabbitmq,Distributed,我有三种情况,认为它们有共同的解决方案: 1) 我在我唯一的vps机器上有繁重的后台任务,并决定将它们分配到几个vps上 根据负载情况,我希望使用云提供商动态添加新机器 2) 我决定将rabbitmq服务器移动到另一台机器上。首先,我需要更改我的生产者和消费者的ip地址 3) 我决定对我的基础设施进行dockerize。Docker容器可以跨不同的网络定位。Docker容器可以动态创建。有时我会在不同的主机上移动docker master mysql、rabbitmq、搜索引擎等容器 问题:

我有三种情况,认为它们有共同的解决方案:

1) 我在我唯一的vps机器上有繁重的后台任务,并决定将它们分配到几个vps上

根据负载情况,我希望使用云提供商动态添加新机器

2) 我决定将rabbitmq服务器移动到另一台机器上。首先,我需要更改我的生产者和消费者的ip地址

3) 我决定对我的基础设施进行dockerize。Docker容器可以跨不同的网络定位。Docker容器可以动态创建。有时我会在不同的主机上移动docker master mysql、rabbitmq、搜索引擎等容器

问题

  • 在创建新机器之前,我不知道它们的IP地址
  • 我不想在我的应用程序、配置文件中手动编辑ip地址
  • 如果Mysql服务器更改其位置,我希望我的应用程序不依赖于ip地址Mysql位置
我想我的问题可以通过DNS服务器解决。 但如果我决定将mysql服务器/rabbitmq/搜索引擎移动到其他机器上,我不知道如何自动更新DNS服务器


我确信有一些概念可以解决我的问题。

虽然你的问题范围相当广泛,但你可能想研究各种解决方案:

  • 关于新机器的动态添加,如果您使用的是AWS,您可能希望查看类似自动缩放组的内容。甚至其他云提供商也支持虚拟机的自动扩展。要使自动缩放正常工作,您必须配置监视阈值(如果您使用AWS,请参阅CloudWatch),以便根据负载调整工作负载的大小。您可以参考您选择的任何平台
  • 关于IP地址问题,您应该将服务绑定到虚拟IP而不是服务器IP。而且,对于分布式系统,您可能希望使用Zookeeper、Concur等服务发现工具来避免硬耦合并动态发现服务

  • 希望这些指针能有所帮助

    一个这样的概念被称为服务发现

    下面是一组很好的幻灯片:


    实现这一目标的一些工具是:ETCD、领事、动物园管理员……

    这个问题充其量是离题的,太宽泛了。你可以在谷歌上搜索“如何设置DNS服务”之类的东西。我不是很确定-听起来你的问题本质上是非常基本的,可能需要咨询专业的系统管理员。