我正在开发一个由许多模块化 Web 应用程序组成的 Web 产品。对最终用户来说,它似乎是一个单一的应用程序,尽管各种组件被分解成它们自己的应用程序。
这样做的部分原因是它可以轻松地跨多个应用程序服务器进行水平扩展。
为了便于数据层的水平扩展,我们计划在数据库前面使用 Web 服务层。该层可以扩展到 N 台机器,并且它的每个实例都将单独处理缓存。
这个想法是应用程序将调用服务层负载均衡器,它将调用分配给服务实例,然后使用其缓存返回数据,或连接到数据库并查询数据。看起来这将是无需大量修改应用程序代码即可扩展的最简单的前瞻性解决方案。
[N Amount of Databases]
|
\/
[Service Tier X N amount of Machines]
|
\/
[Application Tier X n amount of Machines]
但是出现了一些问题,我想在服务级别保留用户会话,以便每个应用程序只使用令牌进行身份验证,但是我不确定如何在所有服务机器上维护会话数据而没有单点故障。
关于如何解决这个问题的任何想法?关于建筑的任何其他想法?有没有其他人有过设计一个每天可以处理数百万次点击的网站的项目?
编辑:甚至没有想法?:(