我在尝试将Reactor的Mono与Spring Cloud Stream一起使用时遇到了一个问题,无法真正弄清楚发生了什么。
想象一下,我有一个这样的听众:
@StreamListener
@Output(Urls.OUTUT)
public Flux<String> expandUrls(@Input(Urls.INPUT) Flux<String> urlFormats)
{
return urlFormats
.map(this::expandUrl)
.flatMapIterable(urls -> urls);
}
因此,它基本上是将一个格式如下的url扩展成这样
< code > http://www . example . com/page/1
http://www.example.com/page/2
http://www.example.com/page/3
它按预期工作,但是当我尝试这样做时:
@StreamListener
@Output(Urls.OUTPUT)
public Flux<String> expandUrls(@Input(Urls.INPUT) Mono<String> urlFormats)
{
return urlFormats
.repeat(3)
.zipWith(pageNumbers)
.map(this::formatUrl);
}
其中pageNumber是Flux.fromStream(Stream.eiterate(1,p-
我得到以下例外
Caused by: java.lang.IllegalArgumentException: A method annotated with @StreamListener may use @Input or @Output annotations only in declarative mode and for parameters that are binding targets or convertible from binding targets.
我通过这样做来消除这个异常
@StreamListener(value = Urls.INPUT)
@Output(Urls.OUTPUT)
public Flux<String> expandUrls(Mono<String> urlFormats)
{
return urlFormats
.repeat(3)
.zipWith(pageNumbers)
.map(this::formatUrl);
}
但现在我明白了:
Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'http': was expecting ('true', 'false' or 'null')
at [Source: http://www.example.com/page-%d,1,0.html;
我的问题是:如何使用Mono和Spring Cloud Stream。有可能这样使用它吗?如果是,那么怎么做呢?哦,我用Kafka做中间人。
Spring Cloud Stream StreamListener的@输入参数类型仅支持反应器类型Flux
,因为它比在@输入参数类型上具有Mono
更适合反应性流应用程序。
我很难理解mono 的用法。请问这个Mono 能给Mono带来什么样的好处? 谢谢。
问题内容: 我在BigInteger的.Net项目Mono实现中使用(链接)。在Java中,我使用java.math.BigInteger。 相同的代码在Java中产生不同的结果。 .Net代码 Java代码。相同的inputBytes数组,相同的指数和模数,但结果不同。 我不明白为什么结果不同。 PS,例如,如果我使用InputBytes Java和.Net中的结果相同 魔术在哪里? 问题答案:
假设我有以下流程 只是为了理解 因此,我有 但我需要 继续皱眉 这个问题有什么好的解决办法吗?
Mono 是一个由 Novell 公司主持的项目。该项目的目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C# 编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。 Mono 的开发工具 Mono
我有一个函数返回,我想将它映射到(因为这是我在控制器方法中返回的东西)。 是否有更好的方法返回而不是? 我不能使用,因为映射函数不能接受s。
好吧,所以我有下面的方法,但我试图摆脱使用。块(),因此尝试实现Mono,但得到错误< code >所需的类型:List 原始代码 我尝试以非阻塞方式重构使用 Mono