22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?

1,005 阅读1分钟

哈希算法的应用

负载均衡

  • 常见的负载均衡算法:轮询、随机、加权轮询等

  • 通用的需求:将一个用户的请求打到相同的服务器上,高效利用缓存

    • 对客户端的IP地址或者会话ID计算哈希值
    • 根据hash值取模计算,分配到不同的服务器上

数据分片

  • 如何统计关键字搜索次数

    • 难点:日志很大,不能放入一台服务器内存
    • 解决思路:将任务拆分(将关键字hash到不同机器上),通过不同服务器进行处理
    • 类似MapReduce
  • 如何判断图片是否在图库

    • 先利用哈希值对机器取模,在对机器进行ahsh查找
    • 突破单机限制

分布式存储

  • 利用hash实现分布式存储
  • 问题:增加机器后,取余将会造成数据丢失,最终造成缓存雪崩
  • 解决:通过一致性hash算法解决(虚拟环和虚拟节点)

总结

  • 除了上述应用,还应用在网络中的CRC校验,Git commit id等等