• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.netcore通过grpc调用python

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、grpc

grpc 一个rpc框架。什么是rpc?简单来说就是远程过程调用。
举个例子,比如在C#代码中直接调用python 中写的方法,或者一个C#进程调用另一个C#进程中的方法,或者其他语言之间的互相调用
grpc 学习地址:https://www.grpc.io/

二、protocol buffer

一种语言,,文件类型.proto
作用:定义进程之间传递参数,以及返回的类型,还有进程直接可调用的方法。具体书写方法可百度

三、python作为服务端

python 部分用的编辑器为vscode

3.1 proto文件的编写

syntax = "proto3"; //表示用的是proto3,之前的版本是2,通过这行代码来区分

//option csharp_namespace = "GrpcClient"; C#的命名空间,引用时要用
package  grpcDemo;

//定义传递的参数 以下两个参数实体,其实是可以替换互用的,就是传递和返回参数变量
message Request{
    string info = 1;
}
message Response{
    string info =1;
}
//定义进程之间调用的方法
service GrpcDemo {
    rpc GetMessgae(Request) returns(Response){}
}

3.2 根据proto 文件生成相关的py文件

在vs code 打开cmd 命令窗口,分别执行以下命令
python -m pip install grpcio
python -m pip install grpcio-tools
python -m grpc_tools.protoc -I./ --python_out=. --grpc_python_out=. ./grpcDemo.proto

3.3 编写python server

import grpc
import grpcDemo_pb2
import grpcDemo_pb2_grpc
from concurrent import futures

class PyServer(grpcDemo_pb2_grpc.GrpcDemoServicer):
    def GetMessgae(self,requet,context):
        return grpcDemo_pb2.Response(info='Hello')
def serve():
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    grpcDemo_pb2_grpc.add_GrpcDemoServicer_to_server(PyServer(),server)
    server.add_insecure_port('127.0.0.1:5001')
    server.start()
    server.wait_for_termination()


if __name__ == '__main__':
    #logging.basicConfig()
    serve()

F5运行 ,服务就完成了

四、Asp.net core API 作为grpc客户端实现

这部分教程请看微软官网地址:https://docs.microsoft.com/en-us/aspnet/core/grpc/clientfactory?view=aspnetcore-3.1

五、代码地址

https://github.com/xiaoqiyaozou1/GrpcDemo


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETCore中的Startup类发布时间:2022-07-10
下一篇:
TheEver-Useful$getand$findASP.NETAJAXShortcutfunction发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap