- 数据存储
Kafka消息系统通过仅进行数据追加的方式实现对磁盘数据的持久化保存,实现了对大数据的稳定存储,并有效地提高了系统的计算能力。通过采用Sendfile系统调用方式优化了网络传输,提高了系统的吞吐量。即使对于普通的硬件,Kafka消息系统也可以支持每秒数十万的消息处理能力。此外,在Kafka消息系统中,通过仅保存订阅者已经计算数据的偏量信息,一方面可以有效地节省数据的存储空间,另一方面也简化了系统的计算方式,方便系统的故障恢复。
3.消息传输
Kafka消息系统采用推送、拉取相结合的方式进行消息的传输。其中,当发布者需要传输消息时,会主动地推送该消息到相关的代理节点;当订阅者需要访问数据时,其会从代理节点进行拉取。通常情况下,订阅者可以从代理节点中拉取自己感兴趣的主题消息。
4.负载均衡
在Kafka消息系统中,发布者和代理节点之间没有负载均衡机制,但可以通过专用的第4层负载均衡器在Kafka代理上实现基于TCP连接的负载均衡的调整。订阅者和代理节点之间通过Zookeeper实现负载均衡机制,在Zookeeper中管理全部活动的订阅者和代理节点信息。当有订阅者和代理节点的状态发生变化时,才实时地进行系统的负载均衡的调整,保障整个系统处于一个良好的均衡状态。
- 存在不足
Kafka系统存在的不足之处主要包括:只支持部分容错,节点失效转移时会丢失原节点内存中的状态信息;代理节点没有副本机制保护,一旦代理节点出现故障,该代理节点中的数据
第3章 数据
85