Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
359 views
in Technique[技术] by (71.8m points)

azure - 用于发布事件的Azure服务总线(Azure service bus for publishing events)

We are making a multi-tenant system that should generate lots of events in bursts (especially during on boarding of new customers) and are looking for a way to decouple the event source with the event handlers.

(我们正在开发一个多租户系统,该系统应突发生成大量事件(尤其是在新客户登机期间),并正在寻找一种将事件源与事件处理程序分离的方法。)

At first the azure service-bus with several subscriptions seemed to be the best case, but reading the limitations that seems to be limited in size.

(最初,具有多个订阅的azure服务总线似乎是最好的情况,但是请阅读似乎在大小上受到限制的限制。)

(like a few GB per topic), and even queue's are in my opinion still to small for our requirements.

((例如每个主题几GB),即使在队列中,我认为对于我们的要求来说仍然很小。)

(About 80GB)

((约80GB))

Don't get me wrong, we are not planning to ingest 100GB of data during normal operations (aka 99% of the time).

(别误会,我们不打算在正常操作期间(也就是99%的时间)摄取100GB的数据。)

However, considering that this is multi-tenant, the number of tenants (and therefore data/events) is bound to grow.

(但是,考虑到这是多租户,租户(因此数据/事件)的数量必然会增长。)

And we prefer to use a single service-bus/queue in order to spread the load of all tenants between all our own servers.

(而且我们更喜欢使用单个服务总线/队列,以便在我们自己的所有服务器之间分配所有租户的负载。)

The nature of the event burst is so that a single tenant could generate huge burst of events, while the others aren't doing much;

(事件爆发的性质是,一个租户可以产生大量事件,而其他租户则没有做很多事。)

so creating a queue per tenant;

(因此为每个租户创建一个队列;)

and have each of our servers listen to a few tenant queue's is not really a good use of our hardware.

(并让我们的每台服务器都监听几个租户队列并不是对我们硬件的真正使用。)

And having all servers listen to all (many) queue's is probably also not a good way of load balancing.

(并且让所有服务器都监听所有(许多)队列,这也不是负载平衡的好方法。)

So our most important requirements are:

(因此,我们最重要的要求是:)

  • not ever miss any input.

    (永远不要错过任何输入。)

  • evenly spread the load across a variable number of servers.

    (将负载平均分配给可变数量的服务器。)
    (will ideally be scaled dynamically based on the size of the queue.)

    ((理想情况下,将根据队列的大小动态缩放。))

But we can live with following drawbacks:

(但是我们可以忍受以下缺点:)

  • it takes some time (days ...) before we have processed everything

    (处理所有内容需要一些时间(几天...))

  • pay per GB actually used (compared to pay for a reservation)

    (实际使用的每GB支付的费用(与支付预留费用相比))

  • it slows down when you put to much data in.

    (当您输入大量数据时,它会变慢。)

Can this be done with Azure service bus / queue's?

(可以使用Azure服务总线/队列吗?)
Or any other Azure storage system?

(还是任何其他Azure存储系统?)
Or do we need to look to something else entirely?

(还是我们需要完全着眼于其他事物?)

  ask by Frederick Grumieaux translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...