gRPC微服务搭建(学习阶段1:极简服务端客户端)

发布时间:2026/9/30 19:29:46
gRPC微服务搭建(学习阶段1:极简服务端客户端) gRPC 是由 Google 开源的一款高性能、跨语言的远程过程调用RPC框架因为它是目前主流的框架因此博主准备开始学习这个框架并且基于此框架构建一套微服务安装必须的第三方库pip install grpcio文章目录服务端代码客户端代码gRPC的程序分为两个部分一个是服务端一个是客户端这里博主整理了一个简单的示例程序方便学习服务端代码importjsonfromconcurrentimportfuturesimportgrpc# 客户端的请求defsay_hello(request,_context):return{message:fHello,{request[name]}!}# 开始服务端的配置 # 创建 gRPC 服务并使用线程池处理客户端请求。servergrpc.server(futures.ThreadPoolExecutor(max_workers2))# 注册 SayHello 方法同时指定请求和响应的 JSON 转换方式。handlergrpc.unary_unary_rpc_method_handler(say_hello,request_deserializerlambdadata:json.loads(data.decode(utf-8)),response_serializerlambdaresponse:json.dumps(response).encode(utf-8),)# 注册服务名称和方法名称客户端必须使用相同的名称调用。server.add_generic_rpc_handlers((grpc.method_handlers_generic_handler(hello.Greeter,{SayHello:handler}),))# 启动 gRPC 服务监听 50051 端口。server.add_insecure_port([::]:50051)server.start()print(gRPC 服务已启动127.0.0.1:50051)# 阻塞直到主动退出server.wait_for_termination()这里就定义了一个简单的gRPC的服务它启动2个线程注册了一个hello.Greeter的服务名这个服务下有个SayHello的方法唯有方法名对外暴露如果客户端调用这个方法那么它被指引的执行函数是后面的handler客户端代码对应的客户端代码importjsonimportgrpc# 连接地址必须和 server.py 中的端口一致。withgrpc.insecure_channel(127.0.0.1:50051)aschannel:# 指定要调用的服务方法/服务名/方法名。say_hellochannel.unary_unary(/hello.Greeter/SayHello,# 发送请求前Python 字典转换为 JSON 字节。request_serializerlambdadata:json.dumps(data).encode(utf-8),# 收到响应后JSON 字节转换为 Python 字典。response_deserializerlambdadata:json.loads(data.decode(utf-8)),)# 发送名称并获取服务端返回的问候消息。responsesay_hello({name:World})print(response[message])这个客户端便是使用grcp调用之前注册的服务名/方法名的办法并且传入参数进去。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询