将嵌入式码头和 GRPC 服务器运行在同一个 JVM 中是一种好习惯吗?

Posted

技术标签:

【中文标题】将嵌入式码头和 GRPC 服务器运行在同一个 JVM 中是一种好习惯吗?【英文标题】:Is it a good practice to have embedded jetty and GRPC server running in the same JVM? 【发布时间】:2018-08-28 06:44:28 【问题描述】:

我们的组织正在研究使用 GRPC 实施新的内部 API。 目前,我们有一个使用嵌入式 Jetty 服务内部/外部请求的微服务。我们希望通过 GRPC 完成服务之间的内部通信。

因此,我们将在同一个 VM 上运行 2 个服务器:jetty 和 GRPC。这是一个好的做法,这种方法有任何危险信号吗?

我们不想将该微服务拆分为 2 个以节省成本。我们应该能够在相同数量的虚拟机上运行应用程序。

【问题讨论】:

“服务器”是坐在那里监听传入流量的东西。在您的情况下,您将不得不使用不同的端口。我不明白为什么你不能让它们同时运行。如果有的话,你会按性能付费,但仅此而已。 是的,我明白,但这是一个好习惯吗? GRPC 服务器会对我的虚拟机造成多少性能损失? 我认为除了您之外,没有人可以衡量您环境的性能。它非常适合您的基础架构。我们只知道您正在使用 Jetty,但没有任何指标。 【参考方案1】:

将 Jetty 和 gRPC 放在同一个 JVM 中并没有本质上的特殊或错误。潜在麻烦的主要点是您将暴露两个端口而不是一个;这可能对服务发现或防火墙很重要。

【讨论】:

以上是关于将嵌入式码头和 GRPC 服务器运行在同一个 JVM 中是一种好习惯吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 WebApp 在嵌入式码头的类路径上找到应用程序属性?

嵌入式码头热部署

markdown havre /像这样的码头工人运行嵌入式squashfs图像

如何为嵌入式码头/弹簧安全启用 HTTP 摘要?

为啥有人会使用 jetty-maven-plugin 与嵌入式码头

嵌入式码头服务器的 Spring Boot 数据源特定属性