![]() |
1
2
分区主要用于支持扩展。默认行为是发送到集线器的消息被划分在这些分区上。 假设我们有4个分区(1-4),其中包含一些消息(A-L):
分区1:A、E、I
我们还定义了两个消费者群体,C1和C2。如果启动从集线器读取消息的过程,则定义一个使用者组(如果没有,则使用默认的使用者组)。
两个读卡器都可以访问相同的分区和消息。但两者都有自己的进度跟踪系统。 这是最重要的部分! 全部的 日志消息必须写入数据库 具有更高日志级别的消息需要使用sms作为高优先级警报发送。如果您只有一个消费者组(C1,由R1读取),那么最终将处理所有消息。但是如果数据库写入速度很慢,很可能是在传递消息和处理消息之间需要一些时间。 现在,如果我们有两个用户组,则该用户组(C2)的读卡器(R2)可以跳过所有低日志级别的消息,只处理要使用sms发送的关键消息。这个阅读器浏览所有消息的速度比需要将所有消息写入数据库的阅读器快得多。 DR:可以使用多个消费者组来分离慢流处理器和快流处理器。每个消费群体都会在流中跟踪自己的进度。 所以最终的进展可能是这样的: 消费群体1(进行一些耗时的处理)
分区1:
A、 E
分区1:
A、 E,我
每个读卡器通过一个使用者组连接到一个事件中心分区,每个分区每个用户组存储进度。因此,从某种意义上说,读卡器有自己的进程,但读卡器是短暂的,连接到同一分区的读卡器的新实例将在前一个读卡器离开的地方继续。 |
![]() |
2
0
|