geektutu / 7days-golang

7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列
https://geektutu.com/post/gee.html
MIT License
15.44k stars 2.44k forks source link

想请教一下geecache项目中一致性哈希有实际发挥作用吗? #74

Open lee-could opened 1 year ago

lee-could commented 1 year ago

我的理解是:所有节点的地址都是服务启动前就配置好的,服务器也没有持久化功能,实际上是在内存中存储kv,那么假设用户要新增节点或删除节点,就得把所有服务停下后修改配置,重启后内存中又是空的了,所有的kv又要重新分配到节点上,这个过程中一致性哈希好像没有发挥实际的作用。请问我的理解对吗?如果对的话这个问题该怎么解决呢

chang-you-ren8 commented 1 year ago

@lee-could 我理解是没什么用,从这个consistenthash没有提供删除接口就能看出来。 而且我感觉这个groupcache根本不能直接用在生产环境中。应该需要一个类似服务注册中心一样的东西。每个server 从注册中心获取所有的实例列表。

lee-could commented 1 year ago

@lee-could 我理解是没什么用,从这个consistenthash没有提供删除接口就能看出来。 而且我感觉这个groupcache根本不能直接用在生产环境中。应该需要一个类似服务注册中心一样的东西。每个server 从注册中心获取所有的实例列表。

好的,非常感谢

Creat-qc commented 10 months ago

这个项目不是可以直接拿来用的吧,作者只是提供了这样的思路,比如一致性hash可以解决节点变动带来的问题。上到生产环境的话肯定要加以完善的。比如上面说的需要记录各个节点的位置。