一、高度耦合大数据架构
1.每一个数据源都会有四个不同流向
2.每一个数据接收者都可能有四个不同来源
3.系统高度耦合,系统复杂度4*4=16
4.不利于程序开发、维护、升级
二、Kafka解耦之后架构
1.所有source只流向Kafka
2.所有target只从Kafka中取数据
3.系统高度解耦,系统复杂度4*1*2=8
4.开发和维护升级成本显著降低
三、传统架构对比Kafka架构复杂度广义分析
假设:SOURCE:N种 TARGET:M种
传统架构: T = N * M
Kafka架构:K = N + M
(1)M >= 1, N = 1(多对一简单系统)
T = K - 1
(2) M >= 1,N > 1(多对多复杂系统)
T >= K
现在假设M=N,我们看下随着SOURCE和TARGET的增大趋势如何【使用Maple科学技术算软件】
注解:传统架构(红线) Kafka架构(蓝线)
由此可见,如果单从系统复杂度考虑,不考虑Kafka的其他优势(易扩展、高速读写、缓冲流),Kafka在多对多的复杂系统表现更为突出。
而大数据场景,往往数据来源多样,数据流向多元,从这个角度来说,Kafka在大数据场景中起到了至关重要的作用。