请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

横向扩展机器

现有100万条数据,有5个同样的服务,通过数据id对5取余来决定该数据由哪个服务处理,假设现在已经处理了一些,突然增加一个服务,该如何加?如何保证在之前的数据不受影响情况下,新加的机器也能参与到处理数据中去?

正在回答

1回答

Jimin 2019-08-20 00:46:40

你好,没太明白,之前处理的为什么会受影响,正常直接取余参与去处理有什么问题吗,正常nginx轮转也属于这种直接调度啊

0 回复 有任何疑惑可以回复我~
  • 提问者 慕侠4425575 #1
    新增机器后就需要对6取余,那么前几台机器就会需要改动代码,如何设计对一个动态数做取余运算呢?
    回复 有任何疑惑可以回复我~ 2019-08-20 08:35:20
  • Jimin 回复 提问者 慕侠4425575 #2
    对6取余,为什么需要修改代码,请求转发到哪台机器不是都可以吗,难道你的机器是有状态的?如果是,可以在nginx层使用lua脚本自己写逻辑处理转发,但很明显的出现请求不均匀,这将是非常折腾的一件事,我接触的项目里倒是有这样做的,维护起来简直就是噩梦,但不是通过取余来搞的,取余处理明显不适合有状态节点的路由方案,而看你说的又像是真的是有状态的。我很怀疑是不是你哪里没想明白。
    回复 有任何疑惑可以回复我~ 2019-08-20 11:57:50
  • 提问者 慕侠4425575 回复 Jimin #3
    感谢解答。
    回复 有任何疑惑可以回复我~ 2019-08-20 12:12:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信