首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分块和负载均衡器:它是如何工作的?

分块和负载均衡器:它是如何工作的?
EN

Stack Overflow用户
提问于 2012-11-15 20:56:11
回答 1查看 5.3K关注 0票数 4

我想我对一些概念感到困惑,这就是为什么我要你帮我做这件事:

我们有一个大型网络应用程序,供许多用户(公司)使用,部署在用户的办公场所。但是现在我们开始使用saas,所以为了让应用程序像这样运行,我们正在做一些调整。

为了处理我们的用户,我们这样做:我们每个用户都有一个db。当然,我们需要负载平衡,因为我们需要很多服务器,所以我提出了一种“切分”架构。我的想法是有一个网络服务器,每个服务器完全独立于彼此。所以我们会把所有的用户数据分割成10台服务器。因此,当用户登录时,实际上他会连接到服务器4。实际上,为了保持可用性,每台服务器中的一台将是一个由2-3台服务器组成的小型集群,其中dbs将在其中进行复制。我们在每个“集群”中使用memcache。我们甚至可以在这个级别上进行负载平衡,只是我们认为我们不需要它,因为数据/用户已经被分割了。

一些问题:

  1. 这是切分吗?请注意,每个集群为给定的用户组服务,并且集群之间没有任何关系。在每个集群中,我们没有一个具有联邦dbs的主数据库,但是具有相同的db结构,只是它在服务器之间被分割。
  2. 如何在用户第一次到达时重定向(未经身份验证)?难道不是在这里应用了负载平衡吗?但是如果用户数据是在服务器之间分割的呢?我一直在想,这里我们将有一个“公共/身份验证集群”,它将处理未经身份验证的用户,即站点的“公共”部分。根据一个非常简单的memcache db,它会将用户重定向到其数据所在的相应集群。如果是这样..。
  3. 我该怎么重定向他们?我认为唯一的办法是把它们发送到类似解释here的地方。只是我不想要server123.mysite.com。

我认为‘公共/身份验证集群’设计得不太好。因为我有2-3台服务器,仅用于向所有用户提供主站点服务(在身份验证之前),而在后台,我有5-6个集群,其中一些可能正在睡觉。或者相反:当公共集群处于休眠状态时,我有一个负载很重的集群,因为它的唯一任务是显示主页并处理重定向到登录过程。

如果这一切成功的话,

  1. 这个结构可以吗?请假设每个用户都很重(实际上,我们不仅有一个php在运行,而且还有.NET和其他服务在工作,等等)。我并不认为这是一种过火的行为,而是一种能够处理多个用户的结构。你有别的主意吗?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 19:09:55

基本上,我会说,是的,这是切分。

为了避免需要了解哪个用户居住在哪个集群(因此您提到了memcache db ),您可以使用某种(一致的)散列。

要将用户重定向到正确的集群而不需要单独的主机名,您可以在成功的身份验证之后向客户端发送cookie,其中包含用户集群的标识符。可以由负载平衡器对cookie进行评估,以将所有进一步的请求转发到正确的集群。这是负载平衡中“会话持久化”的常见实践。

我认为,只有当确实有一个以上的(活动/主动)服务器是为一个用户提供请求的有效候选服务器时,负载平衡这一术语才适用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13406064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档