common issue:
一致性hash与余数hash:为什么一致性hash比余数hash 当服务器变动时,命中率更大,对老数据影响更小
余数hash:就是“根据服务器台数的余数进行分散”,只计算键的整数哈希值,再除以服务器台数,根据其余数来选择服务器
一致性hash:处理服务器的选择不再仅仅只计算key的hash,而将key的hash和服务器节点hash同时映射到hash环上,这样所有的用户从自己圆环上的位置顺时针往下取到第一个vnode就是自己所属节点。当服务器节点发生变化时,只有在hash环上增加服务节点的位置为逆时针方向的第一个服务节点上的键会受到影响
参考资料:
http://dmouse.iteye.com/blog/818984
http://blog.csdn.net/destina/article/details/8241354
分布式系统间的通讯,复杂性,延迟性。
调试/跟踪 困难。
对每个系统的日志,监控及检测。
分布式数据库(主从)数据库同步问题----solution:使用合适的数据库中间件结合日志监控
缓存数据与数据库更新的 相互通知 ---solution: 事件驱动。
interview 1:
memcached的使用
session共享
业务操作时(将一个变化很频繁的数据写入到数据,规定几小时的数据不能丢失),则要考虑,写数据时,可能遇到的网络峰值/硬盘读写峰值。solution:detect模式:先发消息,考察网络环境,看response的数据,时间是否符合要求。类似ping-pong,但由此可带来潮起问题----大量的负载到某一个节点,而其他空闲节点不能得到均衡。