徜徉大数据时代 kafka从入门到实战,一起进入kafka世界

76 阅读5分钟

前言

1. kafka是什么?

Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。

2. 为什么要使用kafka

分布式消息服务器,使用场景无非三种

  • 缓冲和削峰

    • 上游数据时有突发流量,下游可能扛不住,或者是下游没有足够的机器去处理数据请求,会导致服务器坍塌.此时消息服务,可以在其中承担缓冲作用,将消息请求缓存在kafka中,下游的服务再在可以承担压力的情况下慢慢消费.
  • 解耦

    • A系统发送数据到BCD三个系统, A通过接口发送数据,当新增E系统我们需要新增相应的接口去处理E系统,中途如果去掉B系统,还得手动去掉对应接口.引入消息服务,可以A将消息发送到kafka然后谁需要,自己去消息服务订阅消费即可
  • 异步

    • 当A系统分布要往BCD三个服务数据库写入数据,这是A需要调用BCD三个服务,并分别写入数据再返回给A系统处理结果,由于是同步执行的,用户这边需要等待一段时间才会有返回结果,此时的对用户而言很不友好,如果直接将写数据的操作放到消息服务器,不管后续操作情况.这是对用户而言操作是瞬间的,显然可用性 极高

3. kafka和其它MQ的区别

优点:

  • 可扩展。Kafka集群可以透明的扩展,增加新的服务器进集群。
  • 高性能。Kafka性能远超过传统的ActiveMQ、RabbitMQ等,Kafka支持Batch操作。
  • 容错性。Kafka每个Partition数据会复制到几台服务器,当某个Broker失效时,Zookeeper将通知生产者和消费者从而使用其他的Broker

对于kafka的架构原理我们先提出几个问题?

1.Kafka的topic和分区内部是如何存储的,有什么特点?

2.与传统的消息系统相比,Kafka的消费模型有什么优点?

3.Kafka如何实现分布式的数据存储与数据读取?

Kafka的核心功能是什么?一言以蔽之,高性能的消息发送与高性能的消息消费。接下来咱们就进入kafka世界,【+jcc4261获取】深入实战探讨kafka实战开发。

kafka实战

本书是涵盖ApacheKafka各方面的具有实践指导意义的工具书和参考书。作者结合典型的使用场景,对Katka 整个技术体系进行了较为全面的讲解,以便读者能够举一反三,直接应用于实践。同时,本书还对Kafka的设计原理及其流式处理组件进行了较深人的探讨,并给出了详实的案例。

本书适合所有对云计算、大数据处理感兴趣的技术人员阅读,尤其适合对消息引擎、流式处理技术及框架感兴趣的技术人员参考阅读。

第一章:初识Kafka

第1章全面介绍消息引擎系统以及Kafka的基本概念与特性,快速带领读者走进Kafka的世界;

  • Kafka快速入门

  • 消息引擎系统

  • Kafka概要设计

  • Kafka基本概念与术语

  • Kafka使用场景

  • 本章小结

第二章:Kafka发展历史

第2章简要回顾了Apache Kafka 的发展历史;第3章详细介绍了Kafka集群环境的搭建;

  • Kafka的历史

  • Kafka版本变迁

  • 如何选择Kafka版本

  • Kafka与Confluent

  • 本章小结

第三章:Kafka线上环境部署

第3章详细介绍了Kafka集群环境的搭建;

  • 集群环境规划

  • 伪分布式环境安装

  • 多节点环境安装

  • 验证部署

  • 参数设置

  • 本章小结

第四章:producer开发

第4、5章深入探讨了Kafka客户端的使用方法;

  • producer概览

  • 构造producer

  • 消息分区机制

  • 消息序列化

  • producer拦截器

  • 无消息丢失配置

  • 消息压缩

  • 多线程处理

  • 旧版本producer

  • 本章小结

第五章:consumer开发

  • consumer概览

  • 构建consumer

  • 订阅topic

  • 消息轮询

  • 位移管理

  • 重平衡( rebalance )

  • 解序列化

  • 多线程消费实例

  • 独立consumer

  • 旧版本consumer

  • 本章小结

第六章:Kafka设计原理

第6章带领读者一览Kafka内部设计原理

  • broker端设计架构

  • producer端设计

  • consumer端设计

  • 实现精确一次处理语义

  • 本章小结

第七章:管理Kafka集群

第7~9章以实例的方式讲解了Kaka集群的管理、监控与调优

  • 集群管理

  • topic管理

  • topic动态配置管理

  • consumer相关管理

  • topic分区管理

  • Kafka常见脚本工具

  • API方式管理集群

  • MirrorMaker

  • Kafka安全常见问题

  • 本章小结

第八章:监控Kafka集群

  • 集群健康度检查

  • MBean监控

  • broker端JMX监控

  • clients端JMX监控

  • JVM监控

  • OS监控

  • 主流监控框架

  • 本章小结

第九章:优化Kafka集群

  • 引言

  • 确定调优目标

  • 集群基础调优

  • 调优吞吐量

  • 调优延时

  • 调优持久性

  • 调优可用性

  • 本章小结

第十章:Kafka Connect与Kafka Streams

第10章介绍了Kafka 新引入的流式处理组件。

  • 引言

  • Kafka Connect

  • Kafka Streams

  • 本章小结