我们有一个复杂的服务,我们希望将其分解为不同的服务并进行编排。由于不需要公开大多数服务,我在想我们是否可以使用 Vertx 进行 Knative 服务和事件处理。
对于简单的链接,我最初试图只准备一个将事件发送到默认代理的服务,并且通过代理触发器我能够在另一个 Vertx 中获取事件。但是使用 Broker Trigger,我不确定如何回复事件生成器服务。
最近我尝试使用 Camel-K,虽然它在内部使用 Vertx,但从 vertx 服务编写来看似乎更简单一些,我可以通过 Knative 通道进行通信。
发送事件 Camel-K:
from('timer:clock?period=3s')
.setBody().constant("This is Sample Message")
.to('knative:channel/messages')
.log('sent message to messages channel')
在 Camel-k 中接收事件:
from('knative:channel/messages')
.log('got ${body}')
我可以从 Receiver Camel-K 发送回复的方式是什么,以便 Sending Camel-K 接收消息并进一步处理。
用例更像是公开了一个服务,以便其他应用程序可以调用。收到请求后,它会通过 eventing 对另外 2 个服务进行转换和编排,然后回复给调用者。
如果 Github 中有任何示例,如果您能指出我将非常有帮助。想要在 Knative 上实现 Camel / Vertx。