前言
1. kafka是什么?
Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。
2. 为什么要使用kafka
分布式消息服务器,使用场景无非三种
-
缓冲和削峰
- 上游数据时有突发流量,下游可能扛不住,或者是下游没有足够的机器去处理数据请求,会导致服务器坍塌.此时消息服务,可以在其中承担缓冲作用,将消息请求缓存在
kafka中,下游的服务再在可以承担压力的情况下慢慢消费.
- 上游数据时有突发流量,下游可能扛不住,或者是下游没有足够的机器去处理数据请求,会导致服务器坍塌.此时消息服务,可以在其中承担缓冲作用,将消息请求缓存在
-
解耦
- A系统发送数据到BCD三个系统, A通过接口发送数据,当新增E系统我们需要新增相应的接口去处理E系统,中途如果去掉B系统,还得手动去掉对应接口.引入消息服务,可以A将消息发送到
kafka然后谁需要,自己去消息服务订阅消费即可
- A系统发送数据到BCD三个系统, A通过接口发送数据,当新增E系统我们需要新增相应的接口去处理E系统,中途如果去掉B系统,还得手动去掉对应接口.引入消息服务,可以A将消息发送到
-
异步
- 当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
-
本章小结