mysql - 分布在多个服务器上的数据库如何与 Web 应用程序保持 session

标签 mysql sql-server riak

当数据库本身分布在多个服务器上时,数据库如何在 Web 应用程序中维护 session ?如何在自定义数据库中实现此类功能?

最佳答案

简而言之,Riak 的一些关键属性使其可以简单地聚类:

  1. 键/值数据模型
  2. 常量哈希函数
  3. 独立于物理服务器的数据分区

使用 Riak 进行 session 存储的 Web 应用程序会提供与 session 相对应的 key ,例如通过 cookie 或用户 ID 传递的 session ID。集群中的任何服务器都可以获取该 key ,应用 SHA-1 哈希函数,并确定哪些数据分区[*] 应该具有该 key ,然后将请求路由到当前具有这些数据分区的物理服务器。

随着成员的变化,集群使用八卦来跟踪谁拥有哪些分区。

[*] 为了提供可用性,所有单独数据的副本都存储在多个分区上

关于mysql - 分布在多个服务器上的数据库如何与 Web 应用程序保持 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571684/

相关文章:

sql - 使用相关子查询或连接而不是派生表

sql - 如何将结束日期更新为以下记录开始日期的值?

java - 如何在 Riak map 上使用二级索引

indexing - Riak 二级索引数据类型的用途是什么?

Mysql:具有空值的多列主键

php - PHP中的登录/注销问题

mysql - 如何同时更新Redis和MySQL中的数据?

php - 如何从php和mysql制作xml文件

sql-server - 删除游标SQL语句

erlang - Riak 提交后 Hook 在哪里运行?