← 返回题库
中级

实现加权轮询负载均衡

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    service_registry_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    registry = pd.read_csv(StringIO(____))
    class WeightedRoundRobin:
        def __init__(____):
            self.instances = [i for i in instances if i['____']=='____']
            self.current_weights = [____] * len(____)
        def next(____):
            if not self.instances: return None
            weights = [i['____'] for i in self.instances]
            total = sum(____)
            self.current_weights = [cw + w for cw, w in zip(____)]
            idx = self.current_weights.index(max(____))
            self.current_weights[idx] -= total
            return self.instances[idx]
    user_instances = registry[registry['____']=='____'].to_dict(____)
    lb = WeightedRoundRobin(____)
    dist = {}
    for _ in range(____):
        inst = lb.next()
        if inst: dist[inst['____']] = dist.get(____)+____
    print(____)
    for iid, cnt in sorted(dist.items()):
        print(____)
    user_df = registry[registry['____']=='____']
    print(____)

示例

输入
solve()
期望输出
加权轮询分布(10次请求):
  user-1: 4次
  user-2: 4次
  user-3: 2次
权重: {'user-1': 100, 'user-2': 100, 'user-3': 50}
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码