有没有办法支持 scalapb grpc 并在 scala 中播放应用程序
is there a way to support a scalapb grpc and play app in scala
我有一个 grpc scala 应用程序需要进行 aws ELB 健康检查。通常我使用 Play /health 来做到这一点。
有没有办法 运行 grpc 和 Play 应用程序都监听不同的端口。
不幸的是,从现在开始(Play 2.5.x)你会遇到 gRPC 和 Play 在同一个进程中共存的问题,因为它们有冲突的 netty 版本。考虑将 akka-http 用于您的健康检查端点;它也更轻,对您的项目结构没有任何影响。
我设法让 Play 2.6.11 应用程序通过使用 shaded
版本的 grpc-netty 依赖项来使用 gRPC 客户端。此依赖项不会与 Play 的 netty 冲突。
更改您的依赖项:
"io.grpc" % "grpc-netty" % scalapb.compiler.Version.grpcJavaVersion
至:
"io.grpc" % "grpc-netty-shaded" % scalapb.compiler.Version.grpcJavaVersion
并执行 clean
& compile
.
我在 this thread. It was introduced into grpc-java version 1.9 in this pull request 中发现了 grpc-netty-shaded。
我有一个 grpc scala 应用程序需要进行 aws ELB 健康检查。通常我使用 Play /health 来做到这一点。
有没有办法 运行 grpc 和 Play 应用程序都监听不同的端口。
不幸的是,从现在开始(Play 2.5.x)你会遇到 gRPC 和 Play 在同一个进程中共存的问题,因为它们有冲突的 netty 版本。考虑将 akka-http 用于您的健康检查端点;它也更轻,对您的项目结构没有任何影响。
我设法让 Play 2.6.11 应用程序通过使用 shaded
版本的 grpc-netty 依赖项来使用 gRPC 客户端。此依赖项不会与 Play 的 netty 冲突。
更改您的依赖项:
"io.grpc" % "grpc-netty" % scalapb.compiler.Version.grpcJavaVersion
至:
"io.grpc" % "grpc-netty-shaded" % scalapb.compiler.Version.grpcJavaVersion
并执行 clean
& compile
.
我在 this thread. It was introduced into grpc-java version 1.9 in this pull request 中发现了 grpc-netty-shaded。