问题标签 [armeria]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
147 浏览

java - 使用 armeria 或 asynchttpclient 代理大文件

我有一个用 Armeria 制作的代理服务器,它应该从源开始下载并同时将其向外流式传输到目的地。该文件应该是流式传输的,因为这是一个代理服务器,我不想让它存储和转发。这个应用程序应该处理大量的流量。

我应该在哪里寻找纯粹在 Armeria 做的任何提示?

我尝试使用 AsyncHttpClient 但我认为它正在锁定主线程或其他东西,因为请求开始累积。

下面的所有代码都在里面CompletableFuture.supplyAsync()

有没有办法可以解决这个问题,或者更好的是,纯粹在 Armeria 中解决这个问题?

我希望它将文件从源流传输到目标并能够处理大量流量。

0 投票
2 回答
232 浏览

java - 在 Dropwizard 2.0.0 中检索 Jetty 实例

我们有一个在 Dropwizard 版本 2.0.0-RC 中制作的项目,我们使用 REST 端点。在一些问题之后,我们决定使用 gRPC 而不是 REST。有几个第三方库可以将 gRPC 连接到 Dropwizard,但我们认为它们有点过时且不可用。所以我们正在考虑实施 Armeria 及其 GRPC 解决方案。

为了实现这一点,我需要 Jetty 实例来附加 GRPC。

这就是我可以解决的方法(GRPC 和 Armeria 之间的混合):

所以我需要jettyServer成为 Jetty 的实例,类型为org.eclipse.jetty.server. 其余代码是 Armerias 嵌入 Jetty 的方式。链接到嵌入码头。

如何检索 Jetty 的实例?

0 投票
1 回答
299 浏览

armeria - 如何让 Armeria 在出现“地址已在使用”错误时退出?

当 Armeria 由于错误而无法启动时,如何确保我的程序退出Address already in use

我有以下代码:

当我运行它时,一切都很好。但是当我第二次运行它时,我得到了一个Address already in use错误,这当然是意料之中的,但程序不会自行终止。这可能是它应该的样子,但我如何确保它在初始化期间因错误而终止?

0 投票
1 回答
160 浏览

armeria - 如何为 armeria grpc 服务器启用 keep_alive 设置?

作为 GRPC 的 serverBuilder 的一部分,armeria server builder 有几个选项。一个是channelOptionchildChannelOption,它接受ChannelOption.SO_KEEPALIVE和一个布尔值。即使我设置了这些参数,我也会收到一条消息 ,提示通道 '[id:xxxxx]' 的未知通道选项 'SO_KEEPALIVE' 有人可以建议它如何作为 armeria serverbuilder 的一部分来完成吗?

0 投票
1 回答
129 浏览

armeria - 如何使用 thrift 协议获取 httpservice 中的标头

如何处理服务器中的 HTTP 标头?THttpService是最终类,所以我不能扩展它来处理标题。

0 投票
1 回答
71 浏览

java - Netty/Armeria 处理程序方法中的 Bootstrap Hibernate SessionFactory 因 ClassNotFoundException 而失败

我有一个使用Armeria作为 Web 服务的 Java 应用程序。当我在 main 方法中创建我的 Hibernate SessionFactory 时,它工作正常。但是我试图在调用某个 Http Endpoint 时创建 SessionFactory。在处理程序方法中,无法创建会话工厂 Exception in thread "Thread-1" org.hibernate.internal.util.config.ConfigurationException: Unable to perform unmarshalling at line number 0 and column 0 in RESOURCE hibernate.cfg.xml. Message: null

我能找到的关于这个错误的所有信息是没有为 Java > 8 提供 JaxB,但我使用的是 Java 8,如果我只是在应用程序启动时创建它,它就可以正常工作。

0 投票
1 回答
166 浏览

java - 了解 Armeria 的装饰器

我刚从 Armeria 开始,并努力完全理解一些事情。

我实现DecoratingHttpServiceFunction是为了通过 Hibernate 会话向服务提供请求。

但显然会话在服务实际被调用之前关闭,返回的请求delegate.serveDeferredHttpResponse. 我的方法是完全错误的还是有更好的方法来做我想做的事?

0 投票
1 回答
142 浏览

spring-boot - 带有连接工厂和 Req 标头的 Armeria WebClient 请求

我一直在尝试使用 armeria 建立 https 连接WebClient由于未指定连接工厂,我得到javax.net.ssl.SSLHandshakeException任何人都可以提供相关示例的帮助。?谢谢

0 投票
1 回答
139 浏览

armeria - 在 Armeria 上使用第三方 http 客户端

我正在发现 Armeria 框架,我想使用 REST 服务。使用 Armeria WebClient:

此代码返回将异步解析的 CompletionStage,因为如果我在这里执行 join() 或 get() 会导致“java.lang.IllegalStateException:阻塞事件循环,不要这样做”。

我的问题是:如果我想使用第三方 httpclient 库(如 Apache HttpClient)而不是 Web 怎么办?客户端调用也应该包含在 Future 中?我应该如何管理客户端请求以适应框架方法并避免“阻塞事件循环”问题?

谢谢大家!

0 投票
1 回答
52 浏览

armeria - 如何调用多个服务?

当我使用 Armeria 时,我有 3 项服务:

服务 A 调用服务 B 和服务 C。

我应该在 A 的 blockingTaskExecutor 或其他更好的方式中调用 B 和 C 的阻塞存根吗?