因为我的服务大部分部署在了单机多个连续的端口中(如svc2 8100-8130端口),所以可以简单的做均衡。如果是多机多端口。那就另当别论了。 代码相当简单
import random
class UrlApiBalancer(object):
def __init__(self):
self.url = ''
self.port_range=[0,0]
def fill_url(self, *args):
if not self.url:
raise Exception('UrlApiBalancer url is empty')
if not self.port_range[0] or not self.port_range[1]:
raise Exception('UrlApiBalancer port_range is empty')
url = self.url
port = random.randint(self.port_range[0],
self.port_range[1])
url = url.replace('{port}', str(port))
url = url.format(*args)
return url
url_blc = UrlApiBalancer()
url_blc.url = 'http://www.superpig.win:{port}/{}/{}'
url_blc.port_range = [8000, 8100]
print(url_blc.fill_url('ha', 'ha'))