Re: 请教beansdb 相关的问题

58 views
Skip to first unread message

Davies Liu

unread,
Dec 5, 2014, 1:28:54 PM12/5/14
to 上弦月, beandb
对于比较大的数据集,key 的hash通常分布都是很均匀的,不会出现 80% 的 key 落到某一个 bucket 上得情况。

如果访问的热点比较集中,单个 beansdb 是可以承受每秒几千甚至上万次访问的,直到磁盘或者网路带宽成为瓶颈。

但是对于实际的访问请求,是有可能某一个key的访问量特别大,这时候得通过增加多级缓存来解决,比如有CDN缓存,进程内缓存(保持在应用服务器进程内),memcached的缓存等等。

豆瓣的使用方法分两种:

1. 对于图片,会使用CDN(多级缓存机制)来承担大部分的用户访问压力,通过 nginx 直接将请求转发给 beanseye, 再路由到 beansdb。
2. 对于小的文本等数据,是不直接对外访问的,应用服务器(Python 进程)会先访问memcached(两层), miss后才会访问
beanseye, 然后路由到 beansdb。对于某几个特别热门的key, 会有Python进程内的缓存。

豆瓣对于 memcached 的使用可以参考 开源的库 : https://github.com/douban/douban-mc/

2014-12-05 0:39 GMT-08:00 上弦月 <8260...@qq.com>:
> hi,你好,在看你们开源代码时产生了这样的问题
> 问题:
> beansdb 是怎么解决数据的平均分布到每个机器节点的?
> 比如,来1000千万的set 请求,hash之后key %80 落到bucket
> 1上了,不知道beansdb中心化的分布式是怎么解这个问题的



--
- Davies
Reply all
Reply to author
Forward
0 new messages