gpt4 book ai didi

azure - SignalR Actor 或无状态服务

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

我正在考虑将应用程序迁移到在 Azure 上运行的 Service Fabric。它是一个使用 SignalR 的实时聊天式应用程序。我希望有一个正在运行的服务实例,为用户进行通信的每个“关联组”自托管一个 SignalR 集线器(通过 OWIN)。这样我就可以避免使用背板横向扩展 SignalR。我希望能够在用户组进入和离开我的应用程序时启动和关闭这些服务。我希望每个虚拟机可以托管数十个这样的服务,每组的典型负载为数百个用户。

我的想法是,我有一个服务定位器,客户端最初连接到该定位器以发现哪个服务(端口)正在托管他们的组。我还会有一项服务,当对该组的第一个请求传入时,该服务会启动聊天服务的实例。

我如何在 Azure 上的 Service Fabric 中构建此架构,以便 a) 每个服务/参与者都可以通过 Internet 上的 SignalR 客户端进行访问? b) 我只运行必要数量的服务来为 n 个组中的 m 个事件组提供服务?对该应用程序的需求非常短暂且尖峰,因此我希望能够利用服务只是流程并且可以在几秒钟内配置的事实,而不是我目前必须启动整个云服务的情况并等待数十分钟来处理峰值(此时为时已晚)

最佳答案

你会做一些事情:

  • 拥有一个“服务管理器服务”,可以拦截初始加入请求并动态创建新的 Service Fabric 服务(如果这些服务尚不存在),或者如果它们已经存在,则解析服务的当前位置,然后返回该地址给客户

    • 或者,他们可以只传回内部服务名称(如果您同意公开该信息),客户端可以进行解析,然后进行连接。在某种程度上,这取决于您想要向客户端公开多少信息,您是否可以或想要修改它以“了解”Service Fabric 等。
  • 然后客户端将直接连接到实际的支持服务

  • 您必须为实际的聊天服务想出某种机制,以了解没有人留下,并删除自己或通过管理器返回。

  • 您可能最好将聊天服务建模为可靠服务而不是参与者,因为可靠服务堆栈允许围绕通信协议(protocol)/堆栈提供更大的灵 active 。

关于azure - SignalR Actor 或无状态服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017223/

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