python系列2:python调用soa服务
公司项目需要调用基于soa接口的服务,几个技术人员用java配置了一整天都没有搞定,最后一怒之后我自己把要调用的功能重写了一遍。最近用python试了一下,结果一行代码就搞定了,真是感慨万千。
1. SOA
SOA是service-oriented architecture(面向服务的架构)的简写,主要是通过通用接口将服务包装并独立化。
常见的几种SOA规范有:
- SOAP、XMLRPC:http+xml。目前XMLPRC已经逐渐被SOAP取代。
- REST:http+json。SOAP使用xml,安全性更高;REST使用json,性能更好。有时候把REST和SOAP都称为REST,特点为:应用层协议(http)+序列化协议。
- RPC:底层协议(通常是tcp)+序列化协议。比如gRPC=http2+ProtoBuf,由谷歌开发。
下面是常见RPC的对比:
* | Motan | Dubbox | thrift | gRPC | rpcx |
---|---|---|---|---|---|
开发语言 | Java | Java | 跨语言 | 跨语言 | go |
底层协议 | motan | Dubbo、 Rmi 、 Hessian、 http、 WebService 、Dubbo | Thrift 、Memcached | tpc/http/frame | http2 |
消息序列化 | hessian2,json | hessian2,json,resr,kyro,FST等,可扩展protobuf等 | thrift | protobuf | Gob、Json、MessagePack、gencode、ProtoBuf等 |
2. python启用SOA
这里举两个例子:
2.1 基于SOAP
安装soappy:
pip install soappy
建立一个python文件,内容如下,然后运行启用服务:
import SOAPpy
def hello(a):return "Hello "+a
server = SOAPpy.SOAPServer(("localhost", 7788))
server.registerFunction(hello)
server.serve_forever()
2.2 基于XMLRPC
使用自带的SimpleXMLRPCServer:
from SimpleXMLRPCServer import SimpleXMLRPCServer
def add(a , b):return a+b
server = SimpleXMLRPCServer(("localhost", 8123))
server.register_function(add)
server.serve_forever()
3. python调用SOA
这里依旧举两个例子:
3.1 基于SOAP
使用方法如下:
import SOAPpy
server = SOAPpy.SOAPProxy("http://localhost:7788")
print server.hello('chen')
输出
Hello chen
3.2 基于XMLRPC
使用方法为:
import xmlrpclib
server = xmlrpclib.Server('http://localhost:8123/')
print server.add(1,2)
输出
3
python系列2:python调用soa服务相关推荐
- python文件之间的相互调用_「Python 系列」 Python 生成器函数详解
Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...
- csdn最新最牛最细python系列【python高阶:自动化相关技能】 python全栈自动化测试系类4-4
目录 [python之smtplib模块发送邮件] 1.tls模式加密 2.ssl加密,默认加密端口是465 MIMEApplication模块添加附件: [python编程之ini文件处理-conf ...
- python系列-认识python
1.python是怎么出现的 2.python的发展 3.Python的用途 目前python语言可谓炙手可热,开发,测试.运维还有人工智能.数据分析等板块都是他们的影子. python是什么?pyt ...
- python系列之---python的起源
根据TIOBE发布的2018年5月编程语言排行,可以看到python作为现在十分火热的语言,一直都是保持在前列. 5 月编程语言排行榜 TOP20 榜单: Top 10编程语言TIOBE指数走势(20 ...
- 青少年python系列 33.python安装非内置模块
青少年python教学视频ppt源码 青少年python系列目录_老程序员115的博客-CSDN博客 简介 python内置模及其内部的功能函数,是无法满足我们编程需求的.这时候如果有能够满足我们需要 ...
- 青少年python系列 2.Python简介
青少年python系列目录_老程序员115的博客-CSDN博客 青少年python教学视频ppt源码 Python来源 Python的创始人为Guido van Rossum.1989年圣诞节期间, ...
- python系列教程-python前世今生以及windows下环境的安装
文章目录 一.python的前世今生 1.1 Python的起源 二.为什么要学习python 2.1.从语言排行榜上看 三.python的安装 3.1 python下载 3.2 自定义安装路径,以及 ...
- [每日一讲] Python系列:Python概述
Python 序章 概述 Python 是弱类型动态解释型的面向对象高级语言,其具备面向对象的三大特点:封装.继承.多态.Python 代码运行时,其有一个编译过程,通过编译器生成 .pyc 字节码 ...
- 【Python系列】Python写csv文件长数字变成科学记数法的解决方案
DATE: 2022.5.7 文章目录 前言 1.参考 2.问题再现 3.问题原因和分析 4.解决方案 前言 在采用Python处理csv文件时,将长数字的字符串写入csv文件中时,csv表格中的长数 ...
最新文章
- [转载] 中华典故故事(孙刚)——21 正月剪头死舅舅
- Spring Boot配置IDEA无法创建Spring Initializr项目
- 08_索引与切片,Indexing,Python风格的索引,index_select()选择特定索引,使用...索引任意多的维度,使用mask索引,take索引
- fragment入门
- dp笔记:关于DP算法和滚动数组优化的思考
- Microsoft Visual Studio 2010 破解下载!
- 【hortonworks/registry】registry 如何添加新的类型 支持 json
- 无人驾驶的规划与控制(一)——路由寻径
- python基础教程是什么-Python基础教程_Python入门知识
- 在 Azure 虚拟机上快速搭建 MongoDB 集群
- Atitit.视频文件加密的方法大的总结 java c# php
- 轻量级Java EE企业应用实战(第4版) Struts 2+Spring 4+Hibernate整合开发 含CD光盘1
- win10 android 手机驱动下载,win10手机刷机包驱动
- BP神经网络处理iris数据集(Pytorch实现)
- HTML5大数据可视化效果(二)可交互地铁线路图
- 学习写了一个新年倒计时->jQuery+CSS+Html
- 什么是USB Key?
- 单日峰值2T发送量邮件营销平台实践经验
- ruby 读取文本_使用Ruby进行文本处理
- 2019 ICPC 南京 F题 Paper Grading
热门文章
- HTML5期末大作业:抗击疫情网页——逆行者(7个页面) 大学生抗疫感动专题网页 疫情防控网页设计HTML模板 大学生抗疫感动专题网页设计作业模板 静态HTML CSS网站制作成品
- python爬虫实例电商_如何用代码爬抓电商数据(附淘宝API调用实例)
- ISTA-Net : Interpretable Optimization-Inspired Deep 	Network for Image Compressive Sensing
- 原理图制图规范详细说明
- 金阳公益·金山杜仲文化基地揭牌暨捐赠仪式圆满举办
- 丝雨学姐小灶班——Week 5
- android装备选择,原神迪卢克武器怎么选_原神迪卢克武器选择推荐
- github报错:Your branch is ahead of 'origin/master' by 1 commit. 无法上传代码的解决办法
- Android应用程序崩溃:影响、原因和解决方案
- Freeswitch智能语音开发之NLP