美文网首页
Python 调用基于Dubbo 的Hessian 协议接口示例

Python 调用基于Dubbo 的Hessian 协议接口示例

作者: 3479da3be4fa | 来源:发表于2018-06-25 19:35 被阅读61次

******************************************************************************************

关注凡猫学院:加微信+17031115530,拉测试微信群交流

关注凡猫学院:加微信+17031115530,拉测试微信群交流

*******************************************************************************************

Python 调用基于Dubbo 的Hessian 协议接口示例

本文主要介绍使用Python 调用Hession 协议dubbo 接口示例。

关于Dubbo Hession 协议:

Dubbo 本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化+ tcp 协议)、http invoker

(二进制序列化+ http 协议)、hessian(二进制序列化+ http 协议)、WebServices (文本

序列化+ http 协议)等。

Dubbo 将这些协议的实现进行了封装了,无论是服务端(开发服务)还是客户端(调用服务),

都不需要关心协议的细节,只需要在配置中指定使用的协议即可,从而保证了服务提供方与

服务消费方之间的透明。

如果我们使用Dubbo 的服务注册中心组件,这样服务提供方将服务发布到注册的中心,只

是将服务的名称暴露给外部,而服务消费方只需要知道注册中心和服务提供方提供的服务名

称,就能够透明地调用服务。

******************************************************************************************

关注凡猫学院:加微信+17031115530,拉测试微信群交流

关注凡猫学院:加微信+17031115530,拉测试微信群交流

*******************************************************************************************

Python 调用Hession 协议接口基本流程如下:

1. 下载安装Python Hessian 库,地址:https://github.com/theatlantic/python-hessian

2. 定义Hession 接口的服务、接口、方法名称

3. 使用protocol.object_factory 方法,调用该方法参数构造方法,构造调用参数

4. 使用HessianProxy 方法,调用接口

示例代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# -*- 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)

微信+17031115530,拉测试微信群交流

15

16

17

18

19

20

21

22

23

24

25

26

27

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)

另附,官方示例Demo:

https://github.com/theatlantic/python-hessian/blob/master/tests/test_parser.py

******************************************************************************************

关注凡猫学院:加微信+17031115530,拉测试微信群交流

关注凡猫学院:加微信+17031115530,拉测试微信群交流

*******************************************************************************************

相关文章

网友评论

      本文标题:Python 调用基于Dubbo 的Hessian 协议接口示例

      本文链接:https://www.haomeiwen.com/subject/hkcuyftx.html