Python使用Telnet远程调用Dubbo接口

最近公司项目使用了Python作CMS系统,但是数据分析和一些基础数据提供等需要用到Java来做,所以就是一个后台项目分成Java和Python来做,有一些数据就需要从Python端查出来再提供给Java使用,Python使用的是django,Java是Springboot,Python调Java可以使用Telnet调用Java的dubbo接口,Java调用Python用Spring提供的RestTemplate(详情另一篇文章https://blog.csdn.net/java_ying/article/details/82023680

首先安装python环境乱七八糟的就不说了

直接安装我们需要的包

pip install dubbo_telnet 如果下载不下的童鞋可以去github直接下载然后手动解压/安装  链接https://github.com/WALL-E/dubbo-telnet-py

(这里使用的是python2.7   如果用3.6会遇到一些问题)

然后按照example  抄一份改参数即可

# -*- coding: utf-8 -*-
import dubbo_telnet

if __name__ == '__main__':
    Host = '127.0.0.1'  # Doubble服务器IP
    Port = 20883  # Doubble服务端口

    # 初始化dubbo对象
    conn = dubbo_telnet.connect(Host, Port)

    # 设置telnet连接超时时间
    conn.set_connect_timeout(500)

    # 设置dubbo服务返回响应的编码
    conn.set_encoding('utf-8')

    command = 'invoke com.hqjl.common.service.xxxxxxxxxx.method(param)'
    print (conn.do(command))

说一下最后那里 

command  =  'invoke' + dubbo 服务名 + 方法名  (参数)

访问类 可以通过dubbo-admin来看,详情见(https://blog.csdn.net/java_ying/article/details/82023932

方法名不多说了

这个参数 我要说一下   如果直接调用服务端java   很多教程都是传递的json参数   而dubbo端接收的可能不是json

所以如果不是  请直接传一个list参数即可  換一種方法说就是不要写参数名  直接写参数

 也就是   command  =  'invoke' + dubbo 服务名 + 方法名  ('1165')

猜你喜欢

转载自blog.csdn.net/java_ying/article/details/82023803