def test(): conf = config.Config() conf.set("client", "service", "python_test$EchoService") conf.set("client", "zk_connect_str", "192.168.137.111:2181") # 每个进程创建一个 client,多个协程公用一个client manager = client.Client(TutorialService.Client, conf) proxy_client = manager.create_proxy() def test_echo(msg): for i in range(req_num): try: proxy_client.echo(msg) except Exception as e: print("request error:%s" % e) jobs = [] for i in range(Coroutines): jobs.append(gevent.spawn(test_echo,test_msg)) gevent.joinall(jobs)
def test(): # 创建协程,多协程公用一个proxy_client conf = config.Config() conf.set("client", "service", "python_test$EchoService") conf.set("client", "zk_connect_str", "192.168.137.111:2181") manager = client.Client(TutorialService.Client, conf) proxy_client = manager.create_proxy() def test_echo(msg): global error for i in range(req_num): try: proxy_client.echo(msg) except Exception as e: error += 1 jobs = [] for i in range(Coroutines): jobs.append(gevent.spawn(test_echo, test_msg)) gevent.joinall(jobs)
def process(process_num): conf = config.Config() conf.set("client", "service", "python_test$EchoService") conf.set("client", "zk_connect_str", "192.168.137.111:2181") # 每个进程创建一个 client,多个线程公用一个client manager = client.Client(TutorialService.Client, conf) proxy_client = manager.create_proxy() jobs = [] def test(num): for i in range(0, req_num): try: proxy_client.echo(data) except Exception as e: print("request error: %s" % e) thread_jobs = [] for j in range(0, threads): ttd = threading.Thread(target=test, args=(j, )) ttd.start() thread_jobs.append(ttd) for thread_job in thread_jobs: thread_job.join()
import time import logging from tutorial import TutorialService from jdd.prpc import client from jdd.prpc.common import config logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', filename='./logs/directclient.log', filemode='w') if __name__ == '__main__': # read config file # conf = config.Config("./etc/direct_client.conf") # setting config direct connect conf = config.Config() conf.set("client", "use_zk", "False") # 不是用zk conf.set("client", "direct_address", "172.18.1.101:19999") # ip:port 对应server的ip 和 端口 manager = client.Client(TutorialService.Client, conf) proxy_client = manager.create_proxy() for i in range(0, 4): print(proxy_client.echo("hello world!")) time.sleep(0.1) manager.close()
# -*- coding: utf-8 -*- import time import logging from tutorial import TutorialService # 导入thrift生成的service from jdd.prpc import client # 导入prpc 的client from jdd.prpc.common import config # 导入prpc 配置库 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', filename='./logs/clientdemo.log', filemode='w') if __name__ == '__main__': # read config file conf = config.Config("./etc/demo_client.conf") #读取配置文件 # setting config use zk # conf = config.Config() # 初始化配置文件 # conf.set("client", "service", "python_test$EchoService") # 设置服务名,此处和server的相同 # conf.set("client", "zk_connect_str", "192.168.137.111:2181") # zk 连接地址 # setting config direct connect, 不通过zk 进行直连的方式连接server # conf = config.Config() # conf.set("client", "use_zk", "False") # conf.set("client", "direct_address", "127.0.0.1:9095") # ip:port 对应server的ip 和 端口 manager = client.Client(TutorialService.Client, conf) #TutorialService.Client thrift生成的Client proxy_client = manager.create_proxy() for i in range(0, 40): print(proxy_client.echo("hello world!")) time.sleep(0.1) manager.close()