从zk获取ip&port

  • 使用kazoo库链接zk,并从zk的节点中获取rpc节点数据字符串,从中获取已注册dubbo服务的的ip和端口
  • zoookeeper库也可以(我没调通,并且相关资料很少,不推荐)
from kazoo.client import KazooClient
from urllib.parse import unquotezk_ip = '10.12.224.14'
zk_host = 2181
server_name = 'com.bjpowernode.dubbo.service.UserService'zk = KazooClient(hosts=zk_ip + ':' + str(zk_host), read_only=True, timeout=30.0)
zk.start()
print(zk.state)# 获取节点
print(zk.get_children('/'))
print(zk.get_children('/dubbo'))
print(zk.get_children('/dubbo/'+server_name))# rpc
rpc_link = zk.get_children('/dubbo/' + server_name + '/providers')
print(rpc_link)# url解码
rpc_link = unquote("".join(rpc_link))
print(rpc_link)# 获取生产者ip端口
ip = rpc_link.split("/")[2].split(':')[0]
print(ip)
port = rpc_link.split("/")[2].split(':')[1]
print(port)# 停止zkClient
zk.stop()# 关闭连接
zk.close()
print(zk.state)
CONNECTED
['dubbo', 'zookeeper']
['com.bjpowernode.dubbo.service.UserService']
['consumers', 'configurators', 'routers', 'providers']
['dubbo%3A%2F%2F10.12.224.14%3A20880%2Fcom.bjpowernode.dubbo.service.UserService%3Fanyhost%3Dtrue%26application%3D007-zk-userservice-provider%26dubbo%3D2.6.2%26generic%3Dfalse%26interface%3Dcom.bjpowernode.dubbo.service.UserService%26methods%3DqueryUserById%26pid%3D44290%26revision%3D1.0.0%26side%3Dprovider%26timestamp%3D1614648799799']
dubbo://10.12.224.14:20880/com.bjpowernode.dubbo.service.UserService?anyhost=true&application=007-zk-userservice-provider&dubbo=2.6.2&generic=false&interface=com.bjpowernode.dubbo.service.UserService&methods=queryUserById&pid=44290&revision=1.0.0&side=provider&timestamp=1614648799799
10.12.224.14
20880
LOST

函数封装

from kazoo.client import KazooClient
from urllib.parse import unquotedef get_service_info_by_zk(zk_ip, dubbo_interface, zk_host=2181):"""连接zk获取已注册服务的ip/port:param zk_ip::param dubbo_interface::param zk_host::return: service_ip service_port"""zk = KazooClient(hosts=zk_ip + ':' + str(zk_host), read_only=True, timeout=30.0)zk.start()try:rpc_link = zk.get_children('/dubbo/' + dubbo_interface + '/providers')rpc_link = unquote("".join(rpc_link))service_ip = rpc_link.split("/")[2].split(':')[0]service_port = rpc_link.split("/")[2].split(':')[1]return service_ip, service_portexcept Exception as e:raise efinally:zk.stop()zk.close()

Dubbo--kazoo库操作zk相关推荐

  1. .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper

    .NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary>/// MySql 数 ...

  2. lumen mysql 事务_简单几部搞定laravel/lumen跨库操作

    1.跨库数据库配置 在网站跟目录下的config文件中增加database.php作为数据库配置文件.配置如下: //当前默认数据库'mysql' => [ 'driver' => 'my ...

  3. SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析

    SAP 对HU做转库操作,系统报错 - 系统状态HUAS是活动的 - 分析 近日收到业务团队报的问题,说是对某个HU做转库时候,系统报错.如下图示: HU里有是三个序列号, 1191111034011 ...

  4. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 参考文章: (1).NET WebAPI 用ExceptionFilt ...

  5. 使用network管理DD恢复全库操作步骤

    使用network管理DD恢复全库操作步骤 基本信息: 系统平台:RHEL 5.4_86_64 database版本:11.2.0.2.0-64bit 1.检查目标主机是否安装networker客户端 ...

  6. $cfg_dbtype = mysql_多库操作2:终于实现多个数据库操作

    publicUnitOfWork( ISqlSugarClient sqlSugarClient){_sqlSugarClient = sqlSugarClient;} //获取DB,保证唯一性//p ...

  7. MySQl的库操作、表操作和数据操作

    一.库操作 1.1库的增删改查 (1)系统数据库: performance_schema:用来收集数据库服务器的性能参数,记录处理查询时发生的各种事件.锁等现象 mysql:授权库,主要存储系统用户的 ...

  8. python 删除第三方库_python 安装移动复制第三方库操作

    一.绪论 在使用python开发过程中经常会使用到第三方库.因此就涉及到了如何安装.复制移动. 二.安装方式 第三方库的安装方式 1.python自带包管理器:使用pip命令自动安装.例如:pip i ...

  9. Apache ZooKeeper - 使用Apache Curator操作ZK

    文章目录 原生ZK API VS Curator Curator 概述 Maven依赖 会话创建 静态工厂方式创建会话 使用 fluent 风格创建会话 创建节点 protection 模式 ,规避僵 ...

最新文章

  1. windows环境下pip安装python的包时候提示invalid syntax (转载CSDN)
  2. JAVA里面的int类型 和Integer类型,有什么不一样
  3. 编程珠玑 15.3生成文本
  4. 电脑卡顿不流畅怎么解决_如何解决因电脑内存容量不足引起的卡顿?
  5. 学车比学计算机简单,帅哥自述:学车比上班还要累
  6. 查数估获近千万元融资 ,用科技为金融赋能
  7. mysql 判断字段为null表示 false 其它为true_日拱一卒,MySQL数据库 常用SQL优化技巧 十一式...
  8. AUTOSAR从入门到精通100讲(十八)-AUTOSAR操作系统OS
  9. 文件服务器有病毒,服务器共享文件会被病毒加密吗
  10. java山地自行车怎么看型号_怎么看捷安特山地车型号 请问有知道捷安特自行车型号...
  11. 饭卡 01背包 DP
  12. 555定时器的应用——施密特触发器
  13. 【现代通信原理笔记】6 信源编码
  14. Android TextToSpeech(tts)语音播报(文字转语音)
  15. chronodex怎么用_滴答清单使用全攻略:如何把手帐搬到滴答清单上,提升效率?...
  16. python汇率转换
  17. 麻省理工的服务器位置,美国麻省理工学院的地理位置
  18. JavaScript常见面试题
  19. Intellij idea 2020设置经典样式(背景为黑色Darcula)
  20. 嵌入式基础学习-U-Boot使用

热门文章

  1. 基于JavaScript的一些函数式编程概念讲解
  2. windows|如何正确制作U盘启动器
  3. 计算机用户界面设计方法,一文解读:什么是用户界面设计?
  4. 你的工作就是最好的面试-邹欣
  5. SDL2嵌入控件播放导致崩溃,系统锁屏触锁后不刷新
  6. 怎么实现CAD快速看图呢?CAD看图又需要遵循什么规则?
  7. Window配置网络设定IPv4的固定IP自动被修改为169.254.*.*的问题
  8. XLNet模型第一作者杨植麟:NLP落地的四个技术阶段
  9. 安装openpcdet
  10. 教程 | 10分钟入门简笔画(彩色小插画)