公司项目需要调用基于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服务相关推荐

  1. python文件之间的相互调用_「Python 系列」 Python 生成器函数详解

    Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...

  2. csdn最新最牛最细python系列【python高阶:自动化相关技能】 python全栈自动化测试系类4-4

    目录 [python之smtplib模块发送邮件] 1.tls模式加密 2.ssl加密,默认加密端口是465 MIMEApplication模块添加附件: [python编程之ini文件处理-conf ...

  3. python系列-认识python

    1.python是怎么出现的 2.python的发展 3.Python的用途 目前python语言可谓炙手可热,开发,测试.运维还有人工智能.数据分析等板块都是他们的影子. python是什么?pyt ...

  4. python系列之---python的起源

    根据TIOBE发布的2018年5月编程语言排行,可以看到python作为现在十分火热的语言,一直都是保持在前列. 5 月编程语言排行榜 TOP20 榜单: Top 10编程语言TIOBE指数走势(20 ...

  5. 青少年python系列 33.python安装非内置模块

    青少年python教学视频ppt源码 青少年python系列目录_老程序员115的博客-CSDN博客 简介 python内置模及其内部的功能函数,是无法满足我们编程需求的.这时候如果有能够满足我们需要 ...

  6. 青少年python系列 2.Python简介

    青少年python系列目录_老程序员115的博客-CSDN博客 青少年python教学视频ppt源码  Python来源 Python的创始人为Guido van Rossum.1989年圣诞节期间, ...

  7. python系列教程-python前世今生以及windows下环境的安装

    文章目录 一.python的前世今生 1.1 Python的起源 二.为什么要学习python 2.1.从语言排行榜上看 三.python的安装 3.1 python下载 3.2 自定义安装路径,以及 ...

  8. [每日一讲] Python系列:Python概述

    Python 序章 概述 Python 是弱类型动态解释型的面向对象高级语言,其具备面向对象的三大特点:封装.继承.多态.Python 代码运行时,其有一个编译过程,通过编译器生成 .pyc 字节码 ...

  9. 【Python系列】Python写csv文件长数字变成科学记数法的解决方案

    DATE: 2022.5.7 文章目录 前言 1.参考 2.问题再现 3.问题原因和分析 4.解决方案 前言 在采用Python处理csv文件时,将长数字的字符串写入csv文件中时,csv表格中的长数 ...

最新文章

  1. [转载] 中华典故故事(孙刚)——21 正月剪头死舅舅
  2. Spring Boot配置IDEA无法创建Spring Initializr项目
  3. 08_索引与切片,Indexing,Python风格的索引,index_select()选择特定索引,使用...索引任意多的维度,使用mask索引,take索引
  4. fragment入门
  5. dp笔记:关于DP算法和滚动数组优化的思考
  6. Microsoft Visual Studio 2010 破解下载!
  7. 【hortonworks/registry】registry 如何添加新的类型 支持 json
  8. 无人驾驶的规划与控制(一)——路由寻径
  9. python基础教程是什么-Python基础教程_Python入门知识
  10. 在 Azure 虚拟机上快速搭建 MongoDB 集群
  11. Atitit.视频文件加密的方法大的总结 java c# php
  12. 轻量级Java EE企业应用实战(第4版) Struts 2+Spring 4+Hibernate整合开发 含CD光盘1
  13. win10 android 手机驱动下载,win10手机刷机包驱动
  14. BP神经网络处理iris数据集(Pytorch实现)
  15. HTML5大数据可视化效果(二)可交互地铁线路图
  16. 学习写了一个新年倒计时->jQuery+CSS+Html
  17. 什么是USB Key?
  18. 单日峰值2T发送量邮件营销平台实践经验
  19. ruby 读取文本_使用Ruby进行文本处理
  20. 2019 ICPC 南京 F题 Paper Grading

热门文章

  1. HTML5期末大作业:抗击疫情网页——逆行者(7个页面) 大学生抗疫感动专题网页 疫情防控网页设计HTML模板 大学生抗疫感动专题网页设计作业模板 静态HTML CSS网站制作成品
  2. python爬虫实例电商_如何用代码爬抓电商数据(附淘宝API调用实例)
  3. ISTA-Net : Interpretable Optimization-Inspired Deep Network for Image Compressive Sensing
  4. 原理图制图规范详细说明
  5. 金阳公益·金山杜仲文化基地揭牌暨捐赠仪式圆满举办
  6. 丝雨学姐小灶班——Week 5
  7. android装备选择,原神迪卢克武器怎么选_原神迪卢克武器选择推荐
  8. github报错:Your branch is ahead of 'origin/master' by 1 commit. 无法上传代码的解决办法
  9. Android应用程序崩溃:影响、原因和解决方案
  10. Freeswitch智能语音开发之NLP