第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

tornado+jsonrpc

標(biāo)簽:
MySQL

rpc:远程过程调用(A服务调用B服务的一个方法或函数)

 

tornado中jsonrpc的使用

复制代码

import jsonimport tornado.httpserverimport tornado.ioloopimport tornado.webfrom jsonrpcserver.aio import methods#第一个方法@methods.add
async def ping(context, **kwargs):    return kwargs#第二个方法@methods.add
async def ping_one(context, **kwargs):    return kwargsclass RpcHandler(tornado.web.RequestHandler):    def get(self):
        response = methods.dispatch({"jsonrpc": "2.0", "method": "ping", "id": 33, 'params': {'where': 23}},
                                    context={'name': '张三'})        if not response.is_notification:
            self.write(response)    #通过此接口调用不同的方法
    async def post(self):
        rpc_request = self.request.body.decode()
        response = await methods.dispatch(rpc_request, context={'key': 'one'})        if not response.is_notification:
            self.write(json.dumps(response))def make_app():
    settings = {'debug': True}    return tornado.web.Application([
        (r'/', RpcHandler),
    ], **settings)if __name__ == '__main__':
    app = make_app()
    http_server = tornado.httpserver.HTTPServer(app)
    ip = '127.0.0.1'
    port = 8000
    http_server.bind(8000, ip)
    http_server.start(1)    print('server start! http://{}:{}'.format(ip, port))
    tornado.ioloop.IOLoop.current().start()

复制代码

 

 

客户端调用代码如下:

复制代码

import timefrom jsonrpcclient import HTTPClient

req = HTTPClient('http://127.0.0.1:8000/')# 请求ping方法res = req.request('ping', name=34)print(res)
time.sleep(1)# 请求ping_one方法res = req.request('ping_one', name=35)print(res)
time.sleep(1)# 批量请求两个方法res = req.send('''[{"jsonrpc": "2.0", "method": "ping_one", "params": {"name": 351}, "id": 21},
                   {"jsonrpc": "2.0", "method": "ping_one", "params": {"name": 352}, "id": 22}
                   ]''')print(res)

复制代码

 

 服务端响应如下:

 

客户端响应如下:

 

 

json-rpc是一种非常轻量级的跨语言远程调用协议,实现及使用简单。方便语言扩展客户端的实现。

使用场景:

调用另一个服务的某个方法,相对于接口调用,在代码整洁及解耦方面有优势。并且可以使用批量请求(在所以请求完成后,在一并返回)

并且如果是 频繁请求另一个服务的某种功能,使用rpc比http较为轻量级,并且结合socket使用,达到一个连接中多个请求,减少系统开销

 

相关网址:https://www.zybuluo.com/phper/note/76641

                  https://blog.csdn.net/red_heel/article/details/78911252

                  https://www.cnblogs.com/chunguang/p/5724782.html

原文出处:https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_692days_820.html  

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消