首页 > 编程语言 > 详细

python从zk获取连接并测试dubbo接口

时间:2019-08-13 21:07:05      阅读:820      评论:0      收藏:0      [点我收藏+]
#coding=utf8
import sys
from kazoo.client import KazooClient
import urllib
import json
import telnetlib
import socket
import dubbo_telnet
import unittest

def coondoubble_data(Host,Port,interface,method,param):
try:
# 初始化dubbo对象
conn = dubbo_telnet.connect(Host, Port)
# 设置telnet连接超时时间
conn.set_connect_timeout(10)
# 设置dubbo服务返回响应的编码

conn.set_encoding(‘utf8‘)
conn.invoke(interface, method, param)
# print conn.do("ls %s"%(interface) )
command = ‘invoke %s.%s("%s")‘%(interface,method,param)
# print command
return conn.do(command)
except Exception as e:
return e


def get_dubbo():
global Host
zk = KazooClient(hosts="{}:2181".format(Host))
zk.start()
urls = []
list = zk.get_children("dubbo")
for i in list:
# print i
if ‘pacific‘ in i:
# print i
gg = zk.get_children("/dubbo/{}/consumers".format(i))
if gg:
for j in gg:
url = urllib.unquote(j)
if url.startswith(‘dubbo:‘):
urls.append(url.split(‘?‘)[0].split(‘dubbo://‘)[1])
gg = zk.get_children("/dubbo/{}/providers".format(i))
if gg:
for j in gg:
url = urllib.unquote(j)
if url.startswith(‘dubbo:‘):
urls.append(url.split(‘?‘)[0].split(‘dubbo://‘)[1])
services = {}
for i in urls:
path, service = i.split(‘/‘)
if not services.get(path):
services.update({path: []})
services[path].append(service)
print json.dumps(services, indent=4)

if __name__ == ‘__main__‘:
# get_dubbo()

Host = ‘‘ # Doubble服务器IP
Port = # Doubble服务端口


interface = ‘。。。。。.api.service.ModelService‘ # 接口


method = ‘getModelVersion‘ # 方法


param = "" # 参数
data = coondoubble_data(Host, Port, interface, method, param)
print(data)

python从zk获取连接并测试dubbo接口

原文:https://www.cnblogs.com/slqt/p/11347232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!