文档章节

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

hc321
 hc321
发布于 2018/08/11 00:39
字数 389
阅读 10
收藏 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
粉丝 2
博文 80
码字总数 43836
作品 0
海淀
程序员
私信 提问
Python3简单使用xmlrpc实现RPC

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

Cloudox_
2017/12/25
0
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
2018/11/15
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
轻量级rpc框架--bbossgroups RPC

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

bboss
2010/04/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitMQ 在spring 的使用

一、准备工作 maven依赖 <dependency>  <groupId>com.rabbitmq</groupId>  <artifactId>amqp-client</artifactId>  <version>4.0.2</version></dependency> <dependency......

狼王黄师傅
昨天
1
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
1
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
3
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
7
0
day26:shell题

1、 判断当前主机的CPU生产商,其信息在/proc/cpuinfo文件中vendor id一行中。 如果其生产商为AuthenticAMD,就显示其为AMD公司; 如果其生产商为GenuineIntel,就显示其为Intel公司; 否则,...

芬野de博客
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部