写出实现IP散列负载均衡的代码
时间: 2023-07-07 17:31:58 浏览: 44
IP散列负载均衡可以通过以下代码实现:
```python
import hashlib
import socket
# 配置服务器列表
servers = {
'server1': '192.168.1.101',
'server2': '192.168.1.102',
'server3': '192.168.1.103'
}
# 计算IP散列值
def get_hash(ip):
hash_md5 = hashlib.md5()
hash_md5.update(ip.encode('utf-8'))
return int(hash_md5.hexdigest(), 16)
# 根据IP散列值选择服务器
def select_server(ip):
ip_hash = get_hash(ip)
server_keys = sorted(servers.keys())
server_key = server_keys[ip_hash % len(server_keys)]
return servers[server_key]
# 测试代码
if __name__ == '__main__':
# 模拟客户端请求
client_ips = ['192.168.1.1', '192.168.1.2', '192.168.1.3', '192.168.1.4', '192.168.1.5']
for ip in client_ips:
# 选择服务器
server = select_server(ip)
print(f'Client IP: {ip}, Server: {server}')
```
该代码首先定义了一个服务器列表,然后定义了两个函数,一个用于计算IP散列值,另一个根据IP散列值选择服务器。最后,通过模拟客户端请求,测试了选择服务器的结果。