具有最大并发rpcs限制的异步gRCP服务器引发异常

2024-04-26 21:46:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用gRPC AsyncIO API实现gRPC服务器。我使用这个example作为示例,并试图定义服务器上的最大并发rpcs限制,如gRPC AsyncIO server source code中的源代码文档所述。 以下是我的实现:

import asyncio
from grpc.experimental import aio

import helloworld_pb2
import helloworld_pb2_grpc


class Greeter(helloworld_pb2_grpc.GreeterServicer):

    async def SayHello(self, request, context):
        return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)


async def serve():
    server = aio.server(maximum_concurrent_rpcs = 10)
    helloworld_pb2_grpc.add_GreeterServicer_to_server(Greeter(), server)
    listen_addr = '[::]:50051'
    server.add_insecure_port(listen_addr)
    logging.info("Starting server on %s", listen_addr)
    await server.start()
    await server.wait_for_termination()


if __name__ == '__main__':
    asyncio.run(serve())

但它引发了以下例外情况:

AttributeError: 'Server' object has no attribute '_server'

我的问题是,如何定义具有最大并发rpcs限制的gRPC异步IO服务器

注意helloworld_pb2helloworld_pb2_grpc在这个repositroy中可用


Tags: import服务器asynciogrpc定义serverlistenhelloworld