我正在使用Ruby on Rails 3,我想在Service-Oriented Architecture(SOA)中处理用户身份验证。
此时我在同一台服务器上有3个应用程序(现在):
我想使用memcached
(这是一种非常棒的方法来避免查询数据库),但我听说过系统内存不足时会出现问题,例如问题用户无法登录。
但是,我想在pjtname.com
缓存中至少存储user_id
值,这样就更难以耗尽内存。以下是我想要做的步骤,但我不知道这是否是实现我的目标的最佳方式。
pjtname.com
发送到users.pjtname.com
; users.pjtname.com
侧的user_id
字符串)从users.pjtname.com
发送回pjtname.com
; pjtname.com
侧查找缓存中的user_id
,如果已过期,请在步骤1重新开始。那么,您是否建议将memcached
用于此目的?
更新
为什么要发送身份验证? 网站之间的信息,不能他们 只需从中获取会话数据 (同)数据库?
这是因为我试图在不同的服务器上扩展RoR应用程序,每个服务器都有自己的数据库。
提供建筑建议 什么,必须看到整个图片 你的任务来自客户点 观点,并了解他们的意图和 约束
“图片”是我有3个RoR应用程序(pjtname.com
,users.pjtname.com
和others.pjtname.com
)我需要处理数据以提高整个系统的性能。在这种情况下,我需要在中心位置(pjtname.com
)处理用户会话,以便仅在当前用户通过身份验证时才能访问其他应用程序数据(users.pjtname.com
和others.pjtname.com
),即登录。
答案 0 :(得分:0)
鉴于你到目前为止所解释的内容,我的回答是否定的,我不会推荐这个。使用before_filter进行身份验证,将auth存储在会话中。
现在,如果您曾询问是否可以将memcached用作会话存储,我会说这是可能的。但是,使用memcached将无法帮助您描述的过于复杂的消息传递方案。