墨盒 instances.yml 文件

Cartrige instances.yml file

这些字段是什么意思,我应该为我的应用程序放什么?

cartridge:
    cluster_cookie: ""
    replication_connect_quorum: 1

cartridge.srv-1:
    workdir: dev/3301
    advertise_uri: localhost:3301
    http_port: 8081

------ stripped ------

cartridge-stateboard:
    workdir: ./dev/stateboard
    password: qwerty
    listen: 4401

墨盒有两种配置:

  • per-instance,表示配置只能被特定实例看到
  • 集群方式,即所有实例共享

您在 instances.yml 文件中的是 per-instance 配置。您希望将它用于不同 instance-by-instance 的参数。例如,侦听端口或特定实例将获得的内存量。

您还可以看到 top-level 部分在 instances.yml 中包含应用程序名称和实例名称,用点分隔。这就是实例决定加载该配置的哪一部分的方式。它将在 top-level 部分中自行搜索并仅加载相关部分(在您的示例中为 cartridge.srv-1)。还有一种方法可以为应用程序的所有实例指定配置。在这种情况下,省略实例名称(如示例中的 cartridge)。然后,名为 cartridge 的应用程序的每个实例也将加载这些参数。

关于可以指定哪些参数,有3种:

  • 支持所有 box.cfg parameters,例如 memtx_memorywal_mode。你可以用他们的原名传递。
  • Cartridge-specific 参数,例如 http_portadvertise_uri。您可以找到列表 here.
  • 特定于您的应用的自定义参数。看到这个答案: