首页 > 解决方案 > 多个订阅者可以使用 $default 消费者组订阅同一个 EventHub

问题描述

我有两个 Spark 作业,它们基本上使用 $default 消费者组订阅相同的 EventHub。它会起作用吗?

让我们假设将数据摄取到同一个事件中心的多个设备,假设现在将事件摄取 xyz 到事件中心,这两个火花作业都会得到这个 xyz?其次,是否有可能发生冲突,假设第一个 Spark 作业读取 x 分区,第二个 Spark 作业也尝试读取 x 分区。

Endpoint=sb://abc.servicebus.windows.net/;SharedAccessKeyName=allow;SharedAccessKey=abcd=;EntityPath=abc
val customEventhubParameters = EventHubsConf(connStr).setMaxEventsPerTrigger(maxEventTrigger)

val incomingStream = spark.readStream.format("eventhubs").options(customEventhubParameters.toMap).load();
logger.info("Data has been fetched from event hub successfully");
val messages = incomingStream.withColumn("Offset", $"offset".cast(LongType)).withColumn("Time (readable)", $"enqueuedTime".cast(TimestampType)).withColumn("Timestamp", $"enqueuedTime".cast(LongType)).withColumn("Body", $"body".cast(StringType)).select("Offset", "Time (readable)", "Timestamp", "Body")

implicit val formats = DefaultFormats;

val ob = new EventhubMaster();

标签: apache-sparkspark-streamingpublish-subscribeazure-eventhub

解决方案


推荐阅读