Pulsar4s 使用教程

Pulsar4s 使用教程

pulsar4sIdiomatic, typesafe, and reactive Scala client for Apache Pulsar项目地址:https://gitcode.com/gh_mirrors/pu/pulsar4s

项目介绍

Pulsar4s 是一个用于 Apache Pulsar 的 Scala 客户端库,提供了简洁、惯用、响应式和类型安全的方式来与 Apache Pulsar 进行交互。作为 Java 客户端的简单封装,Pulsar4s 继承了 Java 客户端的可靠性和性能,同时更好地集成了 Scala 生态系统和惯用语法。Pulsar4s 支持多种效果库,包括 Scala 的 Future、Monix 的 Task、Cats Effect 的 IO 和 Scalaz 的 Task

项目快速启动

添加依赖

首先,在你的 build.sbt 文件中添加 Pulsar4s 依赖:

libraryDependencies += "com.clever-cloud.pulsar4s" %% "pulsar4s-core" % "2.7.0"

创建生产者和消费者

以下是一个简单的示例,展示如何创建一个生产者和消费者来发送和接收消息:

import com.sksamuel.pulsar4s._
import scala.concurrent.ExecutionContext.Implicits.global

val client = PulsarClient("pulsar://localhost:6650")
val topic = Topic("persistent://sample/standalone/ns1/my-topic")

val producer = client.producer[String](ProducerConfig(topic))
val consumer = client.consumer[String](ConsumerConfig(Seq(topic), "my-subscription"))

// 发送消息
val messageId = producer.send("Hello, Pulsar!")
println(s"Sent message: $messageId")

// 接收消息
val message = consumer.receive
println(s"Received message: ${message.get.value}")

// 清理资源
producer.close()
consumer.close()
client.close()

应用案例和最佳实践

使用不同的效果库

Pulsar4s 支持多种效果库,可以根据你的项目需求选择合适的效果库。以下是一些示例:

使用 Cats Effect
libraryDependencies += "com.clever-cloud.pulsar4s" %% "pulsar4s-cats-effect" % "2.7.0"
import com.sksamuel.pulsar4s.cats.CatsAsyncHandler._
import cats.effect.IO

val producer = client.producer[String](ProducerConfig(topic))
val consumer = client.consumer[String](ConsumerConfig(Seq(topic), "my-subscription"))

// 发送消息
val sendIO = producer.sendAsync("Hello, Pulsar!")
sendIO.unsafeRunSync()

// 接收消息
val receiveIO = consumer.receiveAsync
val message = receiveIO.unsafeRunSync()
println(s"Received message: ${message.value}")

使用 Schema 支持

Pulsar4s 支持多种 Schema 库,如 Circe、Jackson、Json4s、Spray-Json 和 Play-Json。以下是使用 Circe 的示例:

libraryDependencies += "com.clever-cloud.pulsar4s" %% "pulsar4s-circe" % "2.7.0"
import com.sksamuel.pulsar4s.circe._
import io.circe.generic.auto._

case class Food(name: String, description: String)

val producer = client.producer[Food](ProducerConfig(topic))
val consumer = client.consumer[Food](ConsumerConfig(Seq(topic), "my-subscription"))

// 发送消息
val messageId = producer.send(Food("pizza", "ham and pineapple"))
println(s"Sent message: $messageId")

// 接收消息
val message = consumer.receive
println(s"Received message: ${message.get.value}")

典型生态项目

Pulsar4s 可以与多种 Scala 生态系统中的库集成,以下是一些典型的生态项目:

  • Akka Streams: 使用 pulsar4s-akka-streams 模块可以与 Akka Streams 集成。
  • FS2: 使用 pulsar4s-fs2 模块可以与 FS2 集成。
  • Monix: 使用 `pulsar4s-monix

pulsar4sIdiomatic, typesafe, and reactive Scala client for Apache Pulsar项目地址:https://gitcode.com/gh_mirrors/pu/pulsar4s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈如廷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值