gpt4 book ai didi

Azure ServiceDefinition 文件 - ProgramEntryPoint、运行时 IP 地址和端口

转载 作者:行者123 更新时间:2023-12-01 04:04:47 25 4
gpt4 key购买 nike

我正在使用 ProgramEntryPoint 在 Windows Azure 辅助角色中运行命令行程序(可能是 Redis),如下所示

  <WorkerRole name="Worker" vmsize="Small">
<Runtime executionContext="limited">
<Environment>
<Variable name="ADDRESS">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Redis']/@address" />
</Variable>
<Variable name="PORT">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Redis']/@port" />
</Variable>
</Environment>
<EntryPoint>
<ProgramEntryPoint commandLine="redis-server.exe" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
<Endpoints>
<InternalEndpoint name="Redis" protocol="tcp" port="6379" />
</Endpoints>
</WorkerRole>

到目前为止,一切顺利(有效)。我现在想在另一个 WorkerRole 中运行服务器的从属实例

<WorkerRole name="SlaveWorker" vmsize="Small">
<Runtime executionContext="limited">
<EntryPoint>
<ProgramEntryPoint commandLine="echo slaveof %ADDRESS% %PORT% | redis-server.exe -" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
</Imports>
<Endpoints>
<InternalEndpoint name="Redis" protocol="tcp" port="6379" />
</Endpoints>
</WorkerRole>

你可以看到我需要使用IP地址和端口告诉从服务器它的主服务器在哪里;在 Azure 为该角色分配网络资源之前我不知道这一点。我有seen @smarx do something along these lines .

但是我认为就我而言,这可能有一些问题

  1. 我正在一个角色中设置环境变量,并希望在另一个角色中使用它们 - 这是行不通的。

  2. 即使有正确的数据,我需要将其传递给 redis-server.exe 的方式也不会被识别为有效的入口点,并且开头有 echo

<小时/>
  1. 是了解另一个运行时 IP 地址和端口的唯一方法通过代码的 worker 角色或者配置中是否缺少我的语法文件?
  2. 如果我设法获得 IP 和端口,这是我的唯一方法命令行可以将其推送到 powershell 脚本或批处理文件吗?

感谢您的想法。

最佳答案

一个实例知道另一个实例的 IP 地址的唯一方法是:a.) 以编程方式获取它,或者 b.) 另一个实例将其发布到众所周知的位置(例如表存储)。在您的情况下,最简单的方法可能是让从角色运行一个启动任务来访问 RoleEnvironment(可能通过 Powershell)并使用主角色的 IP 地址设置环境变量。如果您将其作为“简单”类型执行,我相信它将在您的 ProgramEntryPoint 执行(阻止)之前运行,并且您可以在命令行中使用环境变量。

但是这里有几个想法:

  1. 您如何处理角色内的多实例?您只计划运行单个实例吗?
  2. 您需要两个不同的角色吗?为什么不使用具有 2 个实例的单一角色通过选举来决定哪个是主实例?

关于Azure ServiceDefinition 文件 - ProgramEntryPoint、运行时 IP 地址和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10190417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com