我正在设计一个定制的客户机-服务器tcp/ip应用程序。应用程序的网络要求如下:
设计目标之一是使应用程序具有可扩展性,因此负载平衡尤为重要。我一直在研究EC2和WindowsAzure的负载平衡功能。我相信现在大多数产品都支持要求1。但是我不太确定要求2和3。特别地:
>
这些服务(EC2、Azure)是否允许应用程序通过指定其他应用程序层要求来影响负载平衡策略?例如,Azure对云服务使用循环作业分配,但上面的要求3显然需要作为负载平衡决策的一部分考虑在内,即基于唯一ID转发,但如果在任何服务器端实例上都找不到唯一ID,则使用循环分配。
负载平衡器是否按照要求2使用持久连接?我对Azure的理解是,您可以指定公共和私有端口对作为endpoint,因此负载平衡器监视公共端口,并将连接请求转发到某个正在运行的实例的私有端口,因此基本上您可以在此后对该连接做任何您想做的事情。这是正确的理解吗?
任何帮助都将不胜感激。
Windows Azure在托管服务上具有输入endpoint,这些endpoint是面向公共的端口。如果您有一个或多个VM实例(Web或Worker角色),流量将分布在实例之间;您无法选择路由到哪个实例(例如,您必须支持无状态应用程序模型)。
如果您想实施粘性会话模型,您需要运行自己的前端负载均衡器(在Web/Worker角色中)。例如:您可以使用IIS ARR(应用程序请求路由),或者nginx或其他支持此功能的服务器。
我上面所说的也适用于Windows Azure IaaS(虚拟机)。在本例中,创建负载均衡终结点。但是您也可以选择非负载平衡终结点:可能有3台服务器,每台服务器都有唯一的端口号。这绕过了任何类型的负载平衡,但允许直接访问每个虚拟机。您也可以只运行运行服务器的单个虚拟机(同样是nginx、IIS ARR等)。)然后将流量路由到几个应用服务器虚拟机之一(通过负载均衡器虚拟机和应用服务器虚拟机之间的直接通信访问)。
注意:公共端口到私有端口映射不允许您执行任何负载平衡。这对您来说更方便:有时您将运行绝对必须监听特定端口的软件,而不管您希望客户访问哪个端口。
Ribbon是一个客户端负载均衡器,它可以很好地控制HTTP和TCP客户端的行为。Feign已经使用Ribbon,所以如果您使用@FeignClient,则本节也适用。 Ribbon中的中心概念是指定客户端的概念。每个负载平衡器是组合的组合的一部分,它们一起工作以根据需要联系远程服务器,并且集合具有您将其作为应用程序开发人员(例如使用@FeignClient注释)的名称。Spring Cloud使
我在kubernetes pods中使用带有Python的gRPC作为客户端/服务器......我希望能够启动多个相同类型的pod(gRPC服务器)并让客户端(随机)连接到它们。 我调度了10个服务器吊舱,并设置了一个“服务”来瞄准它们。然后,在客户端,我连接到服务的DNS名称——这意味着kubernetes应该进行负载平衡,并将我指向一个随机服务器pod。实际上,客户机调用gRPC函数(这很有效
在花了几个小时阅读Http客户机文档和源代码后,我决定在这里寻求帮助。 我有一个使用循环算法的负载均衡服务器
我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。
问题内容: 我正在尝试以客户端/服务器方式制作Java应用程序。客户端是SWT中的GUI,它显示来自服务器的数据。服务器已连接到数据库。 好的,对此感到抱歉,我确定这是一个经典问题,但我不知道如何开始。 在我为他们工作的一个项目中,他们实施了很多魔术来透明地调用Glassfish服务器。 我不想使用Glassfish服务器。我只想要简单的Java语言。但是代理的概念似乎很酷。 你有这种想法或例子吗
我正在使用amazon kinesis连接器构建一个kinesis客户端应用程序。我正在想一些关于它的事情。 KCL如何确保负载平衡和扩展。例如,我有一个有一个碎片的流,很多记录/事件被放置在一整天或特定时间的15分钟内。那么,它将如何处理这种突然的交通和负载。