一、系统崩溃
二、链路耗时长尾
花费时间超过30秒之多
三、服务处理能力有限
四、日志如何处理
解决方案解耦
解决方案:削峰
解决方案:异步
日志处理
保存消息的一个容器,本质上是高吞吐、高并发、高可用
存算分离架构:
如何使用Kafka:
1创建kafka集群
2新增Topic
3编写生产者逻辑
4编写消费者逻辑
2.3 Relica
起到分区容灾的作用
2.4数据复制
Broker:Controller起到了管理分区的作用。
2.5 Kafka架构
2.7 producer批量发送
2.8 Broker消息文件结构
日志文件存储真实的消息数据,Offset索引文件找到数据位置,通过时间戳作为索引
Broker写入的方式为磁盘末尾添加,减少磁头移动时间
二分找到小于目标时间戳最大索引的位置,在通过寻找offset的方式找到最终数据。
2.9 Consumner-Low-level
缺点:无法自动容灾,新增Consumner4需要进程的启停与停止消费的状态,造成数据中断。