簡單使用RPC搭建遠程訪問接口

由於以前自學php,因此知道能夠經過http協議,web server訪問服務器,以前也是將算法放到服務器的flask上供遠程訪問接口使用,最近了解到有個RPC的東西,使用Python模塊zerorpc搭建RPC更簡單快捷。服務端和客戶端都要安裝zerorpc,將服務端的ip和端口號寫入server.py文件中運行(不能中止),客戶端client.py中填寫服務端的ip和端口號便可運行訪問。代碼以下:php

Server.pyweb

import zerorpc
class doubleRPC(object):
    def double2(self, num):
        return num*2

serv = zerorpc.Server(doubleRPC())
serv.bind("tcp://0.0.0.0:4243")
serv.run()

Client.py 本機實驗室127.0.0.1 遠程則換成服務器的ip算法

import zerorpc
c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4243")
print c.double2("RPC")

流式相應(Streaming Responses) 這個代碼非原創flask

Server.py服務器

import zerorpc
class StreamingRPC(object):
    @zerorpc.stream
    def streaming_range(self, fr, to, step):
        return xrange(fr, to, step)

s = zerorpc.Server(StreamingRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()

Client.pytcp

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

for item in c.streaming_range(10, 20, 2):
    print item

第一類異常(First-class exception) 這個代碼非原創code

Server.pyserver

import zerorpc

class ExceptionalRPC(object):
	def bad(self):
    	raise Exception(":P")

s = zerorpc.Server(ExceptionalRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()

Client.py接口

import zerorpc

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

try:
	c.bad()
except Exception, e:
	print "An error occurred: %s" % e
相關文章
相關標籤/搜索