文档章节

简单使用RPC搭建远程访问接口

hc321
 hc321
发布于 08/11 00:39
字数 389
阅读 2
收藏 0

因为之前自学php,所以知道可以通过http协议,web server访问服务器,之前也是将算法放到服务器的flask上供远程访问接口使用,最近了解到有个RPC的东西,使用Python模块zerorpc搭建RPC更简单快捷。服务端和客户端都要安装zerorpc,将服务端的ip和端口号写入server.py文件中运行(不能停止),客户端client.py中填写服务端的ip和端口号即可运行访问。代码如下:

Server.py

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) 这个代码非原创

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.py

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) 这个代码非原创

Server.py

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

© 著作权归作者所有

共有 人打赏支持
hc321
粉丝 0
博文 63
码字总数 26590
作品 0
海淀
程序员
Python3简单使用xmlrpc实现RPC

RPC 先说说什么是RPC,RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如T...

Cloudox_
2017/12/25
0
0
Hadoop中RPC机制简介

RPC(Remote Procedure Call)—远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之...

wall--e
2016/04/16
385
0
【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式

【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式 原创 2017年03月29日 09:43:08 514 【如何实现一个简单的RPC框架】系列文章: 【远程调用框架】...

wsl_Mr
2017/10/20
0
0
Rmote学习笔记-zyh

RMI的概念: RMI(Remote Method Invocation)远程方法调用是一种计算机之间利用远程对象互相调用实现双方通讯的一种通讯机制。使用这种机制,某一台计算机上的对象可以调用另外一台计算机上的...

颖辉小居
2016/11/13
8
0
轻量级rpc框架--bbossgroups RPC

bbossgroups RPC 是基于bbossaop的轻量级rpc框架,感兴趣的朋友可以用一用。bbossgroups提供的RPC框架是bboss aop子项目中一个子模块,具有以下特点: 1.支持多种通讯协议jms,jgroups,min...

bboss
2010/04/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
0
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0
php foreach

<?php// 数组的引用$a=array(1,2,3,4,5);foreach($a as $key=>&$value){$value=$value*2;}print_r($a);echo " $key -------------------$value\r\n";/** * ...

小张525
今天
3
0
12-利用思维导图梳理JavaSE-多线程

12-利用思维导图梳理JavaSE-多线程 主要内容 1.线程概念 2.线程开发 3.线程的状态 4.线程的同步和死锁 5.Java5.0并发库类 QQ/知识星球/个人WeChat/公众号二维码 本文为原创文章,如果对你有一...

飞鱼说编程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部