我目前处于设计阶段,我们有几台服务器组成我们的系统,我需要找出存储会话信息的最佳方式,以便每个服务器都可以访问它。会话信息基本上是会话 id 和用户组名称列表的 guid。
主要的客户端应用程序是 Web 和移动应用程序。
我有以下配置:
所有用户都登录的主服务器,会话对象中填充了与用户对应的用户组信息。登录高峰期可能有多达 10,000 个用户。
包含存档内容的从属服务器,然后大多数用户将通过 UI 直接与从属服务器对话。从服务器需要主服务器上初始确定的会话信息。
一种选择是将每次登录的会话数据移动到从服务器并缓存在从服务器上,然后每个从服务器可以独立工作,并且不需要引用主服务器。
另一种选择是拥有包含会话信息的中央数据库,但由于我们的数据库位于每台服务器上(我们没有单独的机器充当数据库服务器),因此每个从属服务器都会有一个远程连接字符串返回到主服务器服务器数据库。毫无疑问,如果我必须从从服务器远程查询数据库,这会减慢速度。
然后,我遇到了需要清理会话的情况,但总的来说,我预计登录高峰期的数据不会超过 25 MB。
我们最多可以有 10 个从服务器。
什么是最好的解决方案?