【发布时间】:2021-11-28 20:59:15
【问题描述】:
我正在加深我在 fs2 方面的知识,并想尝试 fs2-kafka 来替换 akka 流的用例。这个想法很简单,从 kafka 读取数据并通过 http 请求将数据发布到接收器,然后在成功时提交回 kafka。到目前为止,我无法真正弄清楚 http 部分。在 akka 流/akka http 中,你有一个开箱即用的流 https://doc.akka.io/docs/akka-http/current/client-side/host-level.html#using-a-host-connection-pool
Flow[(HttpRequest, T), (Try[HttpResponse], T), HostConnectionPool]
与 akka 流完美集成。
我试图看看我是否可以用 http4s 和 fs2 做类似的事情。
有没有人有任何参考资料、代码示例、博客以及其他说明如何进行这种集成的东西。到目前为止,我唯一能想到的是将流包装到客户端资源的使用方法中,即
BlazeClientBuilder[IO](IORuntime.global.compute).resource.use { ..... run stream here ..... }
即使这样我也不确定整个事情
【问题讨论】:
-
someStrem.evalMap(data => sendHttpRequest(someClient, data))-someClient是在哪里创建的,例如Stream.resource(SomeClientBuilder....build).flatMap { someClient => ??? }?或者问题是什么?如何创建客户端? http请求怎么做? -
我想你几乎回答了我的问题。我正在寻找确认我很清楚该怎么做。我使用 akka 流已经很长时间了,正如你所知,他们有大量的文档和 ecosys 以及很多示例。 fs2 或 fs2-kafka 不是这种情况(相比之下)。因此,根据您对生态系统本质的理解程度,您需要自己弄清楚这个特定的用例。
-
虽然我在全猫效应生态系统方面变得越来越好,但我仍在学习,仍然没有 100% 的自信。因此,我正在寻找现成的示例,例如您在 akka 文档中的内容,以确认我走的是正确的道路
-
所以问题是,您如何创建客户端,并在您的流中使用它来实际发送您从 Kafka 消费的数据?你能提供一个完整的基本想法,然后我会弄清楚其他的一切。谢谢
-
但是我想我已经可以使用你提供的东西了:)