|
1 year ago | |
---|---|---|
__pycache__ | 1 year ago | |
README.md | 1 year ago | |
__init__.py | 1 year ago | |
client.py | 1 year ago | |
requement.txt | 1 year ago | |
server.py | 1 year ago |
本服务是基于etcd实现的微服务封装的python包, 包含服务注册、服务发现、服务调用等功能
ServerConfig = {
"etcd_server": { # etcd 服务配置
"host": parse_args.center_host,
"port": parse_args.center_port, },
"service_prefix": parse_args.service_name, # 服务前缀
"server_host": parse_args.server_host, # 服务地址
"server_port": parse_args.server_port, # 服务端口
"ttl":10, # 租约时长
"lease_frequency": 0.5 # 续租频率必须小于1。续租间隔时长: ttl*lease_frequency
}
使用说明:
```@etcd_server.etcd_server
def start_service():
server = grpc.server(ThreadPoolExecutor(max_workers=ServerConfig.get("maxPool")))
keyword_pb2_grpc.add_EnjoyAnalyseServicer_to_server(EnjoyRecommend(), server)
server.add_insecure_port("[::]:{}".format(ServerConfig.get("server_port")))
server.start()
try:
while True:
time.sleep(5)
except KeyboardInterrupt:
etcd_server.destroy()
server.stop(0)```
通过装饰器进行使用
ClientConfig = { "etcd_server": { # etcd 服务配置
"host": parse_args.center_host,
"port": parse_args.center_port, },
"service_prefix": parse_args.service_name, # 服务前缀 "retries":5, # 获取ip失败重试次数,默认值 5 "refresh_time":1, # 获取IP重试时间间隔,默认值 1 "timeout":1*5+1, # 请求超时,默认值 retries*refresh_time+1 }
```etcd_client = EtcdClient(**server_config) @etcd_client.start def connect(*args, **kwargs):
param, host = args
print(param, host)
with grpc.insecure_channel(host) as channel:
stub = keyword_pb2_grpc.EnjoyAnalyseStub(channel)
response_result = stub.Analyse(keyword_pb2.RequestWord(keyWord=param, minScore=3.0))
result = response_result.recommendWords
status = response_result.status
return {"result": result, "status": status}```
三、通过装饰器使用
1、etcd_client.start 针对单个线程调用
传参数:
param=xxxx
函数获取参数:param, host = args host="400" 无服务报错编码 param=None 传参为空
2、etcd_client.start_patch(thread_number=5) 针对多线程调用
传参数:
params=[xxx,xxx,xxx]
函数获取参数:param, host = args host="400" 无服务报错编码 param=None 传参为空