返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何使用RPC
  • 787
分享到

Python如何使用RPC

2023-07-02 08:07:46 787人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python如何使用rpc”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主要内容所谓RPC,是远程过程调用(Remote P

本篇内容介绍了“python如何使用rpc”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

主要内容

所谓RPC,是远程过程调用(Remote Procedure Call)的简写,网上解释很多,简单来说,就是在当前进程调用其他进程的函数时,体验就像是调用本地写的函数一般。

本文实现的是在本地调用远端的类class对象的接口,也就是本地的client不实例化类对象,调用的是server端的类对象接口。

为了达到让调用层无须关心底层实现,拥有丝滑般的体验,就需要以下几个部分:

  • 客户端需要把类的接口提取出来,并将调用函数事件捕获存储起来;服务端需要把类的公有函数作为可远程调用的接口。

  • 客户端把调用函数的事件(调用的函数,参数)进行序列化并发送给服务端;服务端将客户端的调用事件反序列化,并执行相应的接口,将返回值发送给客户端。

  • 客户端与服务端通过某种方式(一般就是网络Socket)进行通信。

远程过程调用RPC常用与分布式计算,对应Python库名为rpyc;

from multiprocessing import Poolfrom rpyc import Service  from rpyc.utils.server import ThreadedServer    class RemoteService(Service):       def on_connect(self, conn):        print(conn)     '''供客户端调用的方法前得加exposed_'''    def exposed_search(self, data):          print(data)        data['result'] = 'ok'        return data   def main(port):    sr = ThreadedServer(service=RemoteService, hostname='127.0.0.1', port=port, auto_reGISter=False)      print(f'Server IP: {(sr.host,sr.port)}')    sr.start()   if __name__ == '__main__':    pool = Pool(processes=2)    pool.apply_async(main, args=(9998,))    pool.apply_async(main, kwds={'port':9999})    pool.close()    pool.join()

上段为rpyc服务端,下段为rpyc调用端;

import rpycimport timefrom multiprocessing import Pool def search_db(query,port):    conn = rpyc.connect('localhost',port)    '''调用时省略exposed_'''    result = conn.root.search(query)    time.sleep(1)    print(result)    conn.close() if __name__ == '__main__':    pool = Pool(processes=2)    pool.apply_async(search_db, args=({"match": {'name': 'user'}}, 9998))    pool.apply_async(search_db, kwds={'query': {"match": {'name': 'user'}},'port':9999})    pool.close()    pool.join()

“Python如何使用RPC”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python如何使用RPC

本文链接: https://lsjlt.com/news/340742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python如何使用RPC
    本篇内容介绍了“Python如何使用RPC”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主要内容所谓RPC,是远程过程调用(Remote P...
    99+
    2023-07-02
  • Python使用RPC例子
    目录主要内容远程过程调用RPC常用与分布式计算,对应Python库名为rpyc;上段为rpyc服务端,下段为rpyc调用端;主要内容 所谓RPC,是远程过程调用(Remote Pro...
    99+
    2024-04-02
  • 如何使用RabbitMQ实现RPC
    这篇文章给大家分享的是有关如何使用RabbitMQ实现RPC的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。背景知识RabbitMQRabbitMQ 是基于 AMQP 协议实现的一个消息队列(Message Que...
    99+
    2023-06-02
  • python如何通过protobuf实现rpc
    由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc。rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行goog...
    99+
    2022-06-04
    python protobuf rpc
  • 如何使用PHP和Swoole实现RPC远程调用
    如何使用PHP和Swoole实现RPC远程调用RPC(Remote Procedure Call)是一种远程调用的协议,可以让应用程序在不同计算机上进行函数调用。RPC通常被用于构建分布式系统,其可以让不同的微服务能够协同工作。在PHP和S...
    99+
    2023-05-14
    PHP rpc swoole
  • 基于python如何实现rpc远程过程调用
    这篇文章主要介绍“基于python如何实现rpc远程过程调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于python如何实现rpc远程过程调用”文章能帮助大家解决问题。一、主要内容所谓RPC,...
    99+
    2023-07-02
  • python使用SimpleXMLRPCServer实现简单的rpc过程
    目录使用SimpleXMLRPCServer实现rpc模块定义方法python与rpc服务1.什么是RPC2.xmlrp库使用SimpleXMLRPCServer实现rpc 模块 S...
    99+
    2024-04-02
  • springboot+HttpInvoke如何实现RPC调用
    小编给大家分享一下springboot+HttpInvoke如何实现RPC调用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!开始用springboot2+hession4实现RPC服务时,发现第一个服务可以调用成功,但第二...
    99+
    2023-06-29
  • 如何在 Golang 中使用 RPC 实现文件上传?
    使用 rpc 实现文件上传:创建 rpc 服务器来处理文件上传请求,使用 net/rpc 包创建。创建 rpc 客户端来向服务器发起文件上传请求,使用 net/rpc 包创建,将文件序列...
    99+
    2024-05-13
    文件上传 rpc golang
  • 详解如何利用PHP实现RPC
    目录1.什么是RPC2.从通信协议的层面3.从不同的开发语言和平台层面4.从调用过程来看5.常见的几种通信方式6.php实现简单的rpc1.目录结构2.rpc服务端3.rpc 客户端...
    99+
    2024-04-02
  • openstack中的rpc如何远程调用
    本篇内容介绍了“openstack中的rpc如何远程调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是 RPC看不明白这个图对于看no...
    99+
    2023-06-20
  • python怎么使用SimpleXMLRPCServer实现简单的rpc过程
    这篇文章主要介绍了python怎么使用SimpleXMLRPCServer实现简单的rpc过程的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python怎么使用SimpleXMLRPCServer实现简单的rp...
    99+
    2023-07-02
  • rpc服务器不可用如何解决
    这篇“rpc服务器不可用如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“rpc服务器...
    99+
    2023-02-02
    rpc服务器 服务器
  • Golang如何实现简易的rpc调用
    这篇文章主要介绍“Golang如何实现简易的rpc调用”,在日常操作中,相信很多人在Golang如何实现简易的rpc调用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang如何实现简易的rpc调用”的疑...
    99+
    2023-07-05
  • Golang如何用RPC实现转发服务
    今天小编给大家分享一下Golang如何用RPC实现转发服务的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们需要了解一...
    99+
    2023-07-06
  • java rpc调用框架怎么使用
    使用Java RPC调用框架可以按照以下步骤进行: 导入相关的依赖包:根据选择的RPC框架,导入相应的依赖包,例如使用Apach...
    99+
    2023-10-23
    java rpc
  • 如何在PHP中实现RPC远程调用?
    随着互联网的快速发展和云计算技术的广泛应用,分布式系统和微服务架构变得越来越普遍。在这样的背景下,远程过程调用(RPC)成为了一种常见的技术手段。RPC能够使得不同的服务在网络上实现远程调用,从而实现不同服务之间的互联操作,提高代码的复用性...
    99+
    2023-05-14
    PHP rpc 远程调用
  • php-golang-rpc使用roadrunner-server/goridge/v3/pkg/rpc和php的spiral/goridge3.2实践
    golang代码:go get github.com/roadrunner-server/goridge/v3 package main import (     "fmt"     "net"     "net/rpc"     go...
    99+
    2023-09-02
    qt 开发语言 golang
  • 如何设计一个RPC系统?
    RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高。但是RPC本身的构成却比较复杂,由于受到编程语言、网络模型、使用习惯的约束,有大量的妥协和取舍之处。本文就是通过分析几...
    99+
    2023-06-05
  • node中如何实现RPC通信
    本篇内容主要讲解“node中如何实现RPC通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node中如何实现RPC通信”吧!什么是RPC?RPC:Remote Procedure Call(远...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作