自定义session
一致性哈希和分布式session
将session保存在redis缓存中,可以获得更高的性能。如果有多台缓存服务器,就需要对服务器作负载均衡,将session分发到每台服务器上。实现负载均衡的算法有很多,最常用的是哈希算法,它的基本逻辑是,对session_id(随机字符串)进行哈希,哈希结果再按服务器数量进行取模运算,得到的余数i就是第i个服务器。
一致性哈希(Consistent Hashing)是分布式负载均衡的首选算法。python中有实现模块hash_ring,不需要安装,直接将其中的单文件hash_ring.py拿来用即可,也就100多行代码。一致性哈希除了可以用在这里,也可以用于作分布式爬虫。
一致性哈希,输入随机字符串,算数固定的值,取余获得对应的索引,拿到对应的内容。
hash_ring.py
1 | """ |
分布式session
1 | import tornado.ioloop |