| 1234567891011121314151617181920212223242526272829303132333435 |
- from hello_agents.protocols import ANPDiscovery, register_service
- import random
- # 创建服务发现中心
- discovery = ANPDiscovery()
- # 注册多个相同类型的服务
- for i in range(5):
- register_service(
- discovery=discovery,
- service_id=f"api_server_{i}",
- service_name=f"API服务器{i}",
- service_type="api",
- capabilities=["rest_api"],
- endpoint=f"http://api{i}:8000",
- metadata={"load": random.uniform(0.1, 0.9)}
- )
- # 负载均衡函数
- def get_best_server():
- """选择负载最低的服务器"""
- servers = discovery.discover_services(service_type="api")
- if not servers:
- return None
- best = min(servers, key=lambda s: s.metadata.get("load", 1.0))
- return best
- # 模拟请求分配
- for i in range(10):
- server = get_best_server()
- print(f"请求 {i+1} -> {server.service_name} (负载: {server.metadata['load']:.2f})")
- # 更新负载(模拟)
- server.metadata["load"] += 0.1
|