【发布时间】:2022-11-04 11:51:52
【问题描述】:
我有一个 grpc 项目,我想用 grpc 在多服务器之间发送请求。所以,我想缓存 grpcChannels 以供每次使用。如何一键将 grpcChannels 保存到 redis 中?
将 grpc 通道缓存到 Redis 数据库中
【问题讨论】:
标签: c# asp.net-core redis grpc stackexchange.redis
我有一个 grpc 项目,我想用 grpc 在多服务器之间发送请求。所以,我想缓存 grpcChannels 以供每次使用。如何一键将 grpcChannels 保存到 redis 中?
将 grpc 通道缓存到 Redis 数据库中
【问题讨论】:
标签: c# asp.net-core redis grpc stackexchange.redis
有关使用 gRPC 的最佳实践,请参阅 Microsoft 的 doc。来自文档的引用:
gRPC 客户端是使用通道创建的。 gRPC 客户端是轻量级对象,不需要缓存或重用。
【讨论】:
不幸的是,无法从 Redis 存储和加载 grpc 通道。 grpc 通道的主要资源是打开到另一端(客户端/服务器)的连接,这就像您的应用程序的文件描述符,这就是为什么它不能从 redis 加载的原因。但这不是问题:在您的应用程序中尽可能多地重用一个通道,即不要在每次 RPC 调用后关闭一个通道(更多信息请参见 learn.microsoft.com/en-us/aspnet/core/grpc /…)。但是应用进程在启动时创建通道是可以的
【讨论】: