我们能否在不损害其他客户数据的情况下为不同客户使用单个 Azure 事件中心?

Posted

技术标签:

【中文标题】我们能否在不损害其他客户数据的情况下为不同客户使用单个 Azure 事件中心?【英文标题】:Can we use single Azure Event Hub for different customer without compromising other customer data? 【发布时间】:2021-12-27 12:52:07 【问题描述】:

我的 COSMOS Db 中有不同的客户数据。我需要将该数据推送到 Azure 事件中心,并且在接收端我有不同的消费者来使用他们自己的数据。我应该为所有客户使用单个 Azure 事件中心还是创建多个事件中心? 请建议我实现这一目标的最佳方法。

【问题讨论】:

【参考方案1】:

Azure 事件中心不提供任何程度的数据隔离。如果您在消息中包含用于区分客户的信息,则您可以在处理数据时使用该信息。除此之外,您唯一的选择是使用多个事件中心。

您可能很想使用分区来分隔不同客户的数据,但我不会,因为这会损害可伸缩性并且最大分区数较低。

事件中心的工作方式是消息分布在分区上。您可以创建不同的消费者组,但他们都会看到相同的消息。

您真的希望您的客户直接使用来自事件中心的消息吗?如果是这样,请使用不同的事件中心。如果没有,请自行处理并将客户特定的消息重定向到单独的下游处理器。例如,您可以将消息发送到单独的 Azure 服务总线队列或主题,每个客户一个。

或者,正如 Anupam Chand 建议的那样,您可以使用 Event Grid 之类的工具将数据推送给客户。

【讨论】:

感谢您的快速回复。我目前不是在寻找多租户系统我的场景就像我有对应于不同客户的日志并且客户 ID 在 json 日志消息中。现在,一旦我将该日志发送到事件中心,我希望每个客户都应该只能从事件中心获取他的日志。 与其依赖客户自己获取日志,不如将日志推送给他们?在这种情况下,您应该使用 Eventgrid 之类的东西。然后,您可以根据某些属性过滤掉相应的客户数据,然后仅将这些数据推送给他们。 @manishraghu 无论您称其为租户还是客户,都不会改变无法按照您喜欢的方式完成的事实。但我在答案中添加了一些选项 @AnupamChand 确实,这也是一种可能性。 @AnupamChand 我正在与支持事件中心的 Logrhythm 集成。所以我有多个客户安装了 SIEM 以从事件中心获取数据

以上是关于我们能否在不损害其他客户数据的情况下为不同客户使用单个 Azure 事件中心?的主要内容,如果未能解决你的问题,请参考以下文章

我能否在不依赖客户从 PayPal 中单击“返回站点”的情况下从 PayPal Standard 获得订单确认?

如何在不调用该 Activity 的 API 调用的情况下为横向和纵向模式使用不同的设计?

如何在不运行 rake spec 的情况下为 Rails rspec 测试准备测试数据库?

在不使用数据库的情况下为服务编写单元测试

如何在不放弃主线程的情况下为 Python 使用 CoreBluetooth

如何在不公开所有符号的情况下为 iOS 创建静态库