问题描述
这些字段是什么意思,我应该在哪里放置我的应用程序?
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
解决方法
墨盒有2种配置类型:
- 每个实例,意味着该配置只能由特定实例查看
- 集群方式,由所有实例共享
instances.yml
文件中的内容是每个实例的配置。您希望将其用于因实例而异的参数。例如,侦听端口或特定实例将获得的内存量。
您还可以看到,instances.yml的顶级部分包含应用程序名称和实例名称,并用点分隔。这是实例确定加载此配置的哪一部分的方式。它将在顶级部分中进行搜索,仅加载相关的部分(在您的示例中为cartridge.srv-1
)。还有一种方法可以为应用程序的所有实例指定配置。在这种情况下,请省略实例名称(例如您的示例中的cartridge
)。然后,名为cartridge
的应用程序的每个实例也将加载这些参数。
关于可以指定哪些参数,共有3种类型:
- 支持所有box.cfg parameters,例如
memtx_memory
或wal_mode
。您可以将其原始名称传递给他们。 - 特定于墨盒的参数,例如
http_port
或advertise_uri
。您可以找到列表here。 - 特定于您的应用的自定义参数。查看此答案:How I can to get custom options in the `init` function of the Tarantool Cartridge role?