dubbo python


本文主要介紹使用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方法,調用接口

示例代碼:

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

 幾種rpc對比:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM