高性能分布式RPC框架Zerorpc

RPC說明:

a. RPC(Remote Procedure Call)遠程過程調(diào)用,簡單的理解是一個節(jié)點請求另一個節(jié)點提供的服務。
b. RPC 最核心要解決的問題就是在分布式系統(tǒng)間,如何執(zhí)行另外一個地址空間上的函數(shù)、方法,就仿佛在本地調(diào)用一樣。
c. TCP 協(xié)議是 RPC 的 基石,一般來說通信是建立在 TCP 協(xié)議之上的,而且 RPC 往往需要可靠的通信,因此不采用 UDP.。

1. 安裝

pip3 install zerorpc

2. 服務端

cat zerorpc_server.py 

#!/usr/bin/env python3
# coding: utf-8

import time
import zerorpc

class caculate(object):
    def hello(self, name):
        return 'hello, {}'.format(name)

    def add(self, x, y):
        return x + y

    def multiply(self, x, y):
        return x * y

    def subtract(self, x, y):
        return abs(x-y)

    def divide(self, x, y):
        return x/y


class test1(object):
    def print_msg(self, msg):
        return msg

    def format_print_msg(self, msg):
        return "%s ---> %s" % (time.asctime(), msg)

class test2(object):
    def display_timestamp(self):
        return time.time()

class main(caculate, 
                   test1,
                   test2):
    def main(self):
        return "main"


s = zerorpc.Server(main())

s.bind("tcp://0.0.0.0:4242")
print("run zerorpc...")
s.run()

3. 客戶端

cat zerorpc_client.py 

#!/usr/bin/env python3
# coding: utf-8

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")

def main():
    result = c.add(2, 3)
    print(result)

    result = c.multiply(2, 3)
    print(result)

    result = c.subtract(2, 3)
    print(result)

    result = c.divide(2, 3)
    print(result)

    result = c.print_msg("hello world")
    print(result)

    result = c.format_print_msg("hello world")
    print(result)

    result = c.display_timestamp()
    print(result)

if __name__ == '__main__':
    main()

結(jié)果:
python3 zerorpc_client.py 
5
6
1
0.6666666666666666
hello world
Wed Sep 16 17:20:08 2020 ---> hello world
1600248008.4201121
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容