最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用RPC例子

 更新時(shí)間:2022年06月12日 11:20:08   作者:伍迪艾倫學(xué)Python  
本文主要介紹了Python使用RPC例子,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

主要內(nèi)容

所謂RPC,是遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call)的簡(jiǎn)寫(xiě),網(wǎng)上解釋很多,簡(jiǎn)單來(lái)說(shuō),就是在當(dāng)前進(jìn)程調(diào)用其他進(jìn)程的函數(shù)時(shí),體驗(yàn)就像是調(diào)用本地寫(xiě)的函數(shù)一般。

本文實(shí)現(xiàn)的是在本地調(diào)用遠(yuǎn)端的類class對(duì)象的接口,也就是本地的client不實(shí)例化類對(duì)象,調(diào)用的是server端的類對(duì)象接口。

為了達(dá)到讓調(diào)用層無(wú)須關(guān)心底層實(shí)現(xiàn),擁有絲滑般的體驗(yàn),就需要以下幾個(gè)部分:

  • 客戶端需要把類的接口提取出來(lái),并將調(diào)用函數(shù)事件捕獲存儲(chǔ)起來(lái);服務(wù)端需要把類的公有函數(shù)作為可遠(yuǎn)程調(diào)用的接口。
  • 客戶端把調(diào)用函數(shù)的事件(調(diào)用的函數(shù),參數(shù))進(jìn)行序列化并發(fā)送給服務(wù)端;服務(wù)端將客戶端的調(diào)用事件反序列化,并執(zhí)行相應(yīng)的接口,將返回值發(fā)送給客戶端。
  • 客戶端與服務(wù)端通過(guò)某種方式(一般就是網(wǎng)絡(luò)socket)進(jìn)行通信。

遠(yuǎn)程過(guò)程調(diào)用RPC常用與分布式計(jì)算,對(duì)應(yīng)Python庫(kù)名為rpyc;

from multiprocessing import Pool
from rpyc import Service  
from rpyc.utils.server import ThreadedServer  
  
class RemoteService(Service):  
 
    def on_connect(self, conn):
        print(conn)
 
    '''供客戶端調(diào)用的方法前得加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服務(wù)端,下段為rpyc調(diào)用端;

import rpyc
import time
from multiprocessing import Pool
 
def search_db(query,port):
    conn = rpyc.connect('localhost',port)
    '''調(diào)用時(shí)省略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()

到此這篇關(guān)于Python使用RPC例子的文章就介紹到這了,更多相關(guān)Python使用RPC內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法

    Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)拷貝多個(gè)文件到同一目錄的方法,涉及Python針對(duì)文件與目錄的遍歷、復(fù)制等相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • python def 定義函數(shù),調(diào)用函數(shù)方式

    python def 定義函數(shù),調(diào)用函數(shù)方式

    這篇文章主要介紹了python def 定義函數(shù),調(diào)用函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python集合是否可變總結(jié)

    python集合是否可變總結(jié)

    在本篇文章里小編給大家分享了關(guān)于python集合是否可變的相關(guān)知識(shí)點(diǎn)總結(jié),有需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • OpenCV圖像縮放之cv.resize()函數(shù)詳解

    OpenCV圖像縮放之cv.resize()函數(shù)詳解

    resize函數(shù)opencv中專門用來(lái)調(diào)整圖像大小的函數(shù),下面這篇文章主要給大家介紹了關(guān)于OpenCV圖像縮放之cv.resize()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • python神經(jīng)網(wǎng)絡(luò)之批量學(xué)習(xí)tf.train.batch函數(shù)示例

    python神經(jīng)網(wǎng)絡(luò)之批量學(xué)習(xí)tf.train.batch函數(shù)示例

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)之批量學(xué)習(xí)tf.train.batch函數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)

    python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python中pivot()函數(shù)基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,對(duì)此有興趣的朋友們可以參考學(xué)習(xí)下。
    2021-01-01
  • Python?私有屬性與私有方法

    Python?私有屬性與私有方法

    這篇文章主要介紹了Python?私有屬性與私有方法,私有屬性是指在?Python?的面向?qū)ο箝_(kāi)發(fā)過(guò)程中,對(duì)象的某些屬性只想在對(duì)象的內(nèi)部被使用,但不想在外部被訪問(wèn)到這些屬,下面我們就進(jìn)入文章一起了解更多信息內(nèi)容吧
    2022-03-03
  • Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素示例

    Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素示例

    這篇文章主要介紹了Python實(shí)現(xiàn)刪除列表中滿足一定條件的元素,結(jié)合具體實(shí)例形式對(duì)比分析了Python針對(duì)列表元素的遍歷、復(fù)制、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • pandas實(shí)現(xiàn)to_sql將DataFrame保存到數(shù)據(jù)庫(kù)中

    pandas實(shí)現(xiàn)to_sql將DataFrame保存到數(shù)據(jù)庫(kù)中

    這篇文章主要介紹了pandas實(shí)現(xiàn)to_sql將DataFrame保存到數(shù)據(jù)庫(kù)中,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • PYTHON基礎(chǔ)-時(shí)間日期處理小結(jié)

    PYTHON基礎(chǔ)-時(shí)間日期處理小結(jié)

    PYTHON時(shí)間日期處理函數(shù)以datetime為中心, 起點(diǎn)或中轉(zhuǎn), 轉(zhuǎn)化為目標(biāo)對(duì)象, 涵蓋了大多數(shù)業(yè)務(wù)場(chǎng)景中需要的日期轉(zhuǎn)換處理,這里就為大家介紹一下,需要的朋友可以參考下
    2018-05-05

最新評(píng)論

高邑县| 鹤庆县| 蒲江县| 西丰县| 万全县| 五常市| 岱山县| 邛崃市| 广东省| 泸溪县| 新乡市| 柳河县| 温泉县| 丰原市| 岑巩县| 枣庄市| 延庆县| 修文县| 平湖市| 青龙| 玛沁县| 织金县| 永嘉县| 洪洞县| 定安县| 墨江| 江津市| 西乌| 象山县| 新密市| 弥勒县| 明光市| 陆河县| 剑河县| 措勤县| 洛宁县| 常德市| 扎囊县| 聂拉木县| 呼玛县| 奉化市|