【问题标题】:Pair autoscaled app & db servers together with consul将自动缩放的应用程序和数据库服务器与 consul 配对
【发布时间】:2016-12-07 10:47:40
【问题描述】:

目前,我有两个 GCE 自动扩展的服务器组,由厨师引导。第一个 - redis 服务器 (db),第二个 - java 服务器 (app)。

任何app 服务器都可以与任何db 服务器通信。每一个db都需要app服务器服务,并且不应该有一个app服务器连接到两个独立的db服务器的情况。

所以,我需要弄清楚我是否可以使用 consul 将新创建的应用服务器与新创建的数据库服务器(都在同一个网络中)连接起来。

总而言之,我需要通过在命令中添加适当的db 服务器 IP 或主机名来自动配对新的升级服务器,从而在 app 服务器上启动 java。

我对服务发现和其他东西非常陌生,因此非常感谢任何帮助。

【问题讨论】:

    标签: java consul service-discovery


    【解决方案1】:

    编辑后回答:

    所以如果我理解正确的话,任何 new 应用服务器都可以与任何 new redis 服务器通信,但是一旦他们选择了一个数据库服务器与之通信,他们就应该坚持下去使用该服务器。

    我可以看到一些通过 consul 实现这一目标的方法:

    1. 将每个应用服务器一对一映射到一个redis服务器,并将每个服务器公开为consul中的不同服务,域名如下:app1.service.consulredis1.service.consul。这里的缺点是您无法独立于 redis 服务器扩展应用服务器。
    2. 使用Redis Sentinel,让它为你抽象出数据的分片,然后在consul的一个域名下暴露出来:redis.service.consul

    我建议研究第二个选项,因为它允许您独立扩展应用程序和数据库服务器。

    旧答案:

    听起来您的网络中有两个服务:一个app 服务和一个db 服务。然后,您通常会让 consul 充当它们两者的 DNS 服务器。

    这可以通过为它们中的每一个创建一个服务文件来实现。 在运行您的应用程序的服务器上,您将在 /usr/local/etc/consul.d/my_app.json 中创建一个服务文件:

    {
      "service": {
        "name": "my_app",
        "port": 1234
      }
    }
    

    您将port 替换为您的应用正在侦听的端口。 然后您需要使用consul reload 重新加载领事。您可以通过运行consul monitor 来检查更改是否正确应用。

    您的应用现在应该可以通过您内部网络上的my_app.service.consul 访问。

    您可以通过使用dig my_app.service.consul 发出 DNS 查询来检查这一点。这应该会在 DNS 响应的 ANSWER 部分返回应用服务器的 IP 地址。

    然后您必须在您的数据库服务器上重复这些步骤,您需要为数据库创建另一个具有适当端口和服务名称的服务文件。

    【讨论】:

    • 谢谢你的建议,同志。实际上,appdb 服务器都在不同的自动缩放组中,所以我需要一个新的db 服务器来传递某种lock 状态(我想......)新的app 服务器发现它可以免费使用并连接到它。我说的对吗?
    • @Blasterdick 听起来您的设置比您在问题中描述的更复杂。如果您使用问题的准确描述更新您的问题,我可能会给出更好的答案。
    • 是的,这有帮助。但是仍然缺少一些东西:您使用的是什么类型的数据库?您的数据是否已分片? IE。任何应用服务器都可以与任何数据库服务器通信,还是特定应用服务器需要与特定数据库服务器通信?
    • 对不起。我使用 redis 作为db,仅在内存中。是的,任何app 服务器都可以与任何db 服务器通信。
    • 谢谢你的建议,同志。该应用程序的“架构特性”是,如果其他应用程序已经在使用它,它就不能与 redis 队列一起使用。我想,如果我使用 Sentinel,这种情况是可能的。所以,我最好使用 cunsul(如果你愿意帮助我的话)。
    猜你喜欢
    • 2021-06-03
    • 2018-09-12
    • 1970-01-01
    • 2015-11-29
    • 2017-09-07
    • 1970-01-01
    • 2013-05-08
    • 2013-10-31
    • 2017-09-13
    相关资源
    最近更新 更多