我們有一個使用 Dropwizard 版本 2.0.0-RC 制作的項目,其中我們使用 REST 端點。在出現一些問題后,我們決定使用 gRPC 而不是使用 REST。有幾個 3rd 方庫可以將 gRPC 連接到 Dropwizard,但我們認為它們有點過時且不可用。因此,我們正在考慮實施 Armeria 及其 GRPC 解決方案。為了實現這一點,我需要 Jetty 實例來附加 GRPC。這就是我解決它的方法(GRPC 和 Armeria 之間的混合):Server server = Server.builder() .http(8080) .service(GrpcService.builder()...build()) .serviceUnder("/", JettyService.forServer(jettyServer)) .build();server.start().join();所以我需要jettyServer成為類型為 的 Jetty 實例org.eclipse.jetty.server。其余代碼是 Armerias 嵌入 Jetty 的方式。鏈接到嵌入碼頭。如何檢索 Jetty 實例?
2 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
我能夠通過使用 Dropwizard 生命周期來獲取服務器來解決這個問題。
// variable server is of type org.eclipse.jetty.server.Server
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
@Override
public void serverStarted(Server server) {
// ....
}
});
有了實例,就可以使用 Armeria 附加 gRPC

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
我能夠使用其他答案的評論中提供的鏈接,并將此 PR 放在 Armeria 項目中,以添加 dropwizard 模塊。
https://github.com/line/armeria/pull/2236
目前它的目標是 1.3.x 而不是 2.0,但是一旦存在穩定版本,就需要升級
編輯:PR 被接受并合并
添加回答
舉報
0/150
提交
取消