【问题标题】:Create services dynamically in azure service fabric在 Azure 服务结构中动态创建服务
【发布时间】:2016-01-17 17:44:06
【问题描述】:

我想知道是否可以从另一个服务中创建多个服务结构服务?

我需要这个的场景是在一个 MMO 游戏中,一群玩家决定在魔兽世界风格的战场竞技场中与另一群玩家战斗。这些实例需要动态创建,并且这些服务应用程序的 IP 和端口地址需要以某种方式暴露给正在连接的播放器。

我已经设法使用以下链接提供的信息创建了服务:

http://www.codeguru.com/azure_activities/obtaining-reliability-and-scalability-in-azure-service-fabric.html

https://azure.microsoft.com/en-us/documentation/articles/service-fabric-rest-based-application-lifecycle-sample/

服务已创建,但一次只能创建一个,不知道如何从创建的服务中提取IP和端口信息。

服务组是否可以解决这个问题?

https://msdn.microsoft.com/en-us/library/azure/system.fabric.fabricclient.servicegroupmanagementclient.aspx

【问题讨论】:

  • 您是否考虑过为此使用演员?听起来与您的场景完美匹配:只需创建一个新的 ActorProxy 并向新演员发送消息。
  • 是的,这是个好主意。为每个需要的实例创建一个新的 Actor。唯一让我担心的是,对于低 ping 场景,消息传递开销不会很高吗?
  • 为什么你认为演员的开销会明显高于服务?在任何情况下,您都应该针对您的工作负载和延迟要求运行测试。
  • 可能是一样的,谢谢米哈伊尔的回答。现在忙于测试实现。
  • 是的,你可以。谢谢米哈伊尔!

标签: c# azure azure-service-fabric


【解决方案1】:

您应该考虑为此使用 Actor 模型。多人游戏后端是基于角色的系统的经典场景之一。所以,每当你需要创建一个新的玩家组时

  1. 为新组选择一个 ID。您将按此 ID 寻址新组。
  2. 使用此 ID 创建一个新的 ActorProxy 并向新参与者发送消息。

Service Fabric 将为您完成所有启动、通信和生命周期管理工作。无需知道 IP 或任何网络详细信息。

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 2016-12-04
    • 2016-08-04
    • 1970-01-01
    • 2020-05-12
    • 2015-12-04
    • 1970-01-01
    • 2018-12-09
    • 2021-09-06
    相关资源
    最近更新 更多