问题标签 [smallrye]
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.
multithreading - Quarkus Reactive Messaging 不使用 JMS 连接器和 SmallRye 实现启动单独的线程
在我的场景中,应用程序使用 CDI 生产者从 JMS 队列中读取消息。
我正在使用 quarkus-smallrye 实现。
连接器看起来很简单:
配置:
我尝试了不同的方法来处理消息,但在每种情况下,我都只有一个工作线程。
日志每次显示相同的结果:
我使用了这个文档并搜索了很多 ;-)
我的错误是什么?为什么我只运行一个线程?如果您需要更多信息,请告诉我。
java - 我们可以并行处理每个多管道步骤吗?
假设我们有:
- 一个 URL 列表,它是我们 Multi 的来源
- 作为第一步,我们使用 HTTP 客户端调用获取此页面的 HTML
- 然后我们尝试找到一些特定的标签并获取它的内容
- 然后我们将找到的东西存储到数据库中
现在我们在这里有 3 个步骤。有没有办法可以并行运行这些步骤?我的意思是一段时间后它应该:抓取 HTML 并同时处理 html + 获取标签内容,同时将数据从已处理的项目中保存到数据库中。(希望我的意思很明显)这样我们就可以进行并行处理。默认情况下,我可以看到,mutiny 以串行方式进行。
这是一个例子:
现在这会报告以下控制台输出:
可以看到它没有并行运行。我在这里错过了什么?
swagger - Smallrye 开放 api 拦截器
我正在开发一个休息应用程序。
某些端点需要自定义标头参数,与授权无关。我使用 jax-rs NameBinding 创建了一个自定义注释。这是一个使用示例:
有一个提供程序拦截此调用并使用标头参数中的信息执行一些例程。
问题是我必须在任何地方重复 '@HeaderParam("bank") @Parameter(ref = "#/components/parameters/banks") String bank',这样它才会出现在 Swagger 中,即使服务类没有需要它。我至少能够使用 ref = "#/components/parameters/banks" 重用参数定义,并在 OpenAPI.yml 文件中声明它,Quarkus 可以很好地与生成的代码合并。
但我也想创建和拦截器,以便在存在 RequiresBankHeader 注释时动态添加 OpenApi 定义。
有没有办法做到这一点?
trace - 带有 Microprofile OpenTracing 分布式跟踪的 Quarkus 不起作用
我正在将 Thorntail (2.4.0.Final) 迁移到 Quarkus (1.11.1.Final)。在测试阶段,我们注意到分布式跟踪不起作用。跟踪工作(单个组件跟踪),但 uber-trace-id 没有与休息请求标头一起传递,因此下一个微服务(休息请求的接收者)正在从零开始生成跟踪,没有跨度信息。
在 Thorntail 中,它仅通过 ClientBuilder 上的配置完成
比较两者,我注意到使用 Thorntail 有可用的 ClientTracingRegistrarProvider
具有所有与 wildfly 相关的配置,例如文件 META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider 与提供程序路径 org.wildfly.swarm.mpopentracing.deployment.ResteasyClientTracingRegistrarProvider
在 Quarkus 中,我们以相同的方式构建 rest 客户端,但没有这样的提供程序。有人知道我们需要改变什么才能拥有这个分布式跟踪功能吗?
附加信息:我们正在使用 jaxrs API (javax.ws.rs) 构建 rest 客户端并构建具有依赖项的应用程序:
提前感谢所有建议和帮助。
java - 动态编程主题名称/Quarkus Smallrye 响应式消息传递 Kafka
我想使用这个扩展:[Quarkus Smallrye Reactive Messaging Kafka]
但是在我的应用程序中,主题的名称是事先不知道的,它是根据运行时从用户那里收到的消息指定的。如何在没有注释的情况下以编程方式指定与主题相关的主题名称和设置?(仅用于向 Kafka 发送消息 -> 生产)
或者这些配置应该在运行时以编程方式设置
因为不认识路,所以用的是原生的Kafka驱动
quarkus - Quarkus - 理解错误请求失败:java.lang.IllegalStateException:SRMSG00028:对事件的订阅已被取消
我正在使用 Quarkus 将请求代理到另一个 REST 服务。下游服务运行时一切正常。当我关闭下游并通过 Quarkus 发送请求(例如 curl 请求)时,第一个请求被卡住,对于所有其他进一步的 curl 请求,我收到以下错误,即使下游服务恢复,系统也永远不会恢复。
Request failed: java.lang.IllegalStateException: SRMSG00028: The subscription to events has been cancelled
我使用 org.eclipse.microprofile.reactive.messaging.Emitter 和 org.eclipse.microprofile.reactive.messaging.Channel。
我该如何处理这种情况?我希望当下游服务关闭时 curl 请求会超时,并且一旦服务重新启动,我应该会收到 200 个 Ok 响应,而不是“IIlegalStateException 他对事件的订阅已被取消”。
可能是我遗漏了一些简单的东西,但我在 Quarkus 文档中找不到与此相关的任何内容。请指教。
谢谢,
quarkus - ActiveMQ Artemis 中的消息过期
我使用 Eclipse 微配置文件发射器在 Quarkus 应用程序中创建了一个 ActiveMQ Artemis 生产者。但是消息会立即过期,并被移入ExpiryQueue
. 我不确定这种行为。请建议我如何将消息保留到队列中,以便它仅在指定时间后过期。
我正在使用下面的代码。
在元数据下创建:
我正在使用smallrye-amqp
连接器。在以下属性中添加application.properties
:
java - 夸库斯大学没有按照公认的方式工作?
当我在处理 QUArkus 应用程序时,我试图返回 Uni,但它给了我错误:
但是从前端调用这个请求时,它给了我以下错误:
RESTEASY002020:未处理的异步异常,发回 500:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:找不到类 io.smallrye.mutiny.context.ContextPropagationUniInterceptor$2 的序列化程序,也没有发现用于创建 BeanSerializer 的属性(为避免异常,请禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)
请让我知道如何解决它。
我找到了一种方法,但如果我更改以下行,我认为它不合适:
从:
至:
比它会起作用。所以如果我添加“f.await().infinitely()”它会起作用,我的问题是它仍然是被动的吗?
java - 如何使用 Mutiny 反应式编程调用长时间运行的阻塞 void 返回方法?
我在 Mutiny 的 Uni 上有一个 Async 和 Sync 方法调用链,有些方法是一个长时间运行的过程,返回类型为void
。
在不阻塞下游的情况下调用/调用它们的正确方法是什么?
下面是简单的类比代码。