nginx可以用于基于HTTP的分片资源吗?

时间:2011-09-16 15:40:01

标签: nginx couchdb sharding

信息

CouchDB是一个RESTful,基于HTTP的NoSQL数据存储区。响应以简单的JSON发回,并且在生成的响应中能够utilizing ETags,以帮助缓存服务器判断数据是否已更改。

问题

是否可以使用nginx来连接CouchDB服务器集合,其中每个Couch服务器是较大集合的分片(而不是彼此的副本),并让它根据查询的特定方面确定目标分片字符串?

示例查询:

http://db.mysite.com?id=1
http://db.mysite.com?id=2

Shard Logic:

shard = ${id} % 2; // even/odd

这不是一个直接的“负载平衡”问题,因为我需要相同的请求总是在同一台服务器上结束,但我很好奇这种类型的简单路由逻辑是否可以写入nginx站点配置

如果可以,那么这个解决方案如此吸引人的原因是你可以从Couch服务器打开nginx caching of the JSON responses,并以一种非常强大和可扩展的方式很好地打包和部署整个设置。

1 个答案:

答案 0 :(得分:1)

你可以拼凑一些东西,或者你可以使用BigCouch(https://github.com/cloudant/bigcouch)。