发布时间:2019-09-24 08:20:59编辑:auto阅读(2124)
本文主要介绍使用Python调用Hession协议dubbo接口示例。
关于Dubbo Hession协议:
Dubbo本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等。
Dubbo将这些协议的实现进行了封装了,无论是服务端(开发服务)还是客户端(调用服务),都不需要关心协议的细节,只需要在配置中指定使用的协议即可,从而保证了服务提供方与服务消费方之间的透明。
如果我们使用Dubbo的服务注册中心组件,这样服务提供方将服务发布到注册的中心,只是将服务的名称暴露给外部,而服务消费方只需要知道注册中心和服务提供方提供的服务名称,就能够透明地调用服务。
Python调用Hession协议接口基本流程如下:
1. 下载安装Python Hessian库,地址:https://github.com/theatlantic/python-hessian,或者pip install python-hessian进行安装
2. 定义Hession接口的服务、接口、方法名称
3. 使用protocol.object_factory方法,调用该方法参数构造方法,构造调用参数
4. 使用HessianProxy方法,调用接口
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#
-*- coding:utf-8 -*- from
pyhessian.client import HessianProxy from
pyhessian import protocol import
json def
InvokeHessian(service,interface,method,req,retcode='000000'): try: url='http://192.168.0.1:10883/'+service+'.'+interface print
'URL:\t%s'%url print
'Method:\t%s'%method print
'Req:\t%s'%req res=getattr(HessianProxy(url),method)(req) print
'Res:\t%s'%json.dumps(res,ensure_ascii=False) except
Exception,e: print
e if
__name__ == '__main__': service='com.service.common.api.service' interface='TestHessianService' method='testHessian' req=protocol.object_factory('com.service.common.api.service.model.req.TestHessianRequest', param1='lovesoo',param2=10086) InvokeHessian(service,
interface, method,req) |
上一篇: python毫秒级延时
下一篇: python连接phoenix
47953
46543
37462
34844
29421
26075
25037
20056
19677
18153
5881°
6522°
6028°
6038°
7152°
5986°
6056°
6539°
6500°
7883°