Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 将客户端连接路由到Kubernetes群集中特定的Signal后端实例_Docker_Asp.net Core_Kubernetes_Signalr - Fatal编程技术网

Docker 将客户端连接路由到Kubernetes群集中特定的Signal后端实例

Docker 将客户端连接路由到Kubernetes群集中特定的Signal后端实例,docker,asp.net-core,kubernetes,signalr,Docker,Asp.net Core,Kubernetes,Signalr,在尝试为共享绘图创建web应用程序时,我遇到了一个关于Kubernetes和缩放的问题。该应用程序使用ASP.NET Core后端和SignalR在其用户之间共享图形数据。为了扩展应用程序,我为系统的每个微服务使用了一个部署。但对于信号机部分,需要额外配置 经过一些研究,我发现可以通过使用Azures Signal服务或使用Redis背板同步Signal后端的所有实例。后者我已经开始在我当地的minikube环境中工作。我对这个解决方案并不满意,原因如下: 我主要担心的是,像这样,我已经造成了

在尝试为共享绘图创建web应用程序时,我遇到了一个关于Kubernetes和缩放的问题。该应用程序使用ASP.NET Core后端和SignalR在其用户之间共享图形数据。为了扩展应用程序,我为系统的每个微服务使用了一个部署。但对于信号机部分,需要额外配置

经过一些研究,我发现可以通过使用Azures Signal服务或使用Redis背板同步Signal后端的所有实例。后者我已经开始在我当地的minikube环境中工作。我对这个解决方案并不满意,原因如下:

  • 我主要担心的是,像这样,我已经造成了一个硬瓶颈 系统。与聊天应用程序不同,聊天应用程序只发送一次数据 在一段时间内,每绘制一个点,就会发送一条消息 与任何客户分享绘图经验。简单地说,交通流量很大 可能发生,所有这些都必须通过单个Redis背板

  • 此外,对我来说,似乎没有必要让信号器后端的所有实例相互通信 其他的。在此应用程序中,共享图形仅在多达10个客户端的小组中出现 说。这种大小的组可以轻松地承载在单个实例上

因此,如果不同步SignalR后端的所有实例,当客户端尝试加入组时,我必须根据SignalR组名称将客户端连接路由到SignalR后端的正确实例

我已经找到了允许我为集群中的每个后端pod拥有一个持久地址的方法。然后,我可以以某种方式将信号器组ID与它们在另一个查找微服务中运行的pod地址关联起来。这方面的问题是,客户机需要能够从集群外部访问正确的pod,而集群内部地址实际上没有帮助

另外,我想知道是否有更好的方法来解决这个问题,因为我对库伯内特斯的世界还很陌生。我将非常感谢你对这个问题的想法,以及对(更好)解决方案的任何暗示