kafka
阿飞的博客
奋斗不息,前进不止!!
展开
-
1. kafka是什么
定义一千个人眼里有一千个哈姆雷特。如果说谁最有资格定义kafka是什么,那么肯定是官方文档:Apache Kafka® is a distributed streaming platform.官方还对流平台进行了定义–流平台有三大关键能力(A streaming platform has three key capabilities): - Publish and subscri...原创 2018-06-21 23:01:36 · 748 阅读 · 0 评论 -
11. kafka重试机制解读
前面对kafka的学习中已经了解到KafkaProducer通过设定参数retries,如果发送消息到broker时抛出异常,且是允许重试的异常,那么就会最大重试retries参数指定的次数。本片文章主要分析几个问题: - 哪些异常可以重试 - 如何实现重试接下来通过分析一一解开这些问题的答案。1.哪些异常可以重试org.apache.kafka.clients.produ...原创 2018-07-25 17:15:09 · 24943 阅读 · 6 评论 -
10. kafka消费者如何分配分区
消费者如何分配分区就是指某个topic,其N个分区和消费该topic的若干消费者群组下M个消费者的关系。如下图所示,C0和C1两个消费者如何分配N个分区: 核心接口:org.apache.kafka.clients.consumer.internals.PartitionAssignor内置策略:org.apache.kafka.clients.consumer.RangeAssigno...原创 2018-07-18 14:09:26 · 17169 阅读 · 5 评论 -
7. kafka序列化&反序列化
序列化kafka序列化消息是在生产端,序列化后,消息才能网络传输。而构造KafkaProducer代码如下:Properties props = new Properties();props.put("bootstrap.servers", "10.0.55.229:9092");props.put("key.serializer", "org.apache.kafka.commo...原创 2018-07-04 19:49:07 · 10271 阅读 · 0 评论 -
4. kafka生产者&消费者
原生方式无论是生产者还是消费者,引入的依赖都是kafka-clients,maven坐标如下:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>1....原创 2018-06-28 18:19:47 · 1242 阅读 · 0 评论 -
8. kafka分区
分区策略构造KafkaProducer代码如下:Properties props = new Properties();props.put("bootstrap.servers", "10.0.55.229:9092");props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializ...原创 2018-07-10 18:13:52 · 323 阅读 · 0 评论 -
6. kafka拦截器
拦截器定义 拦截器参数命名为:interceptor.classes。官方文档解析如下: A list of classes to use as interceptors. Implementing the org.apache.kafka.clients.producer.ProducerInterceptor interface allows you to intercept ...原创 2018-07-03 14:08:44 · 1048 阅读 · 0 评论 -
5. ActiveMQ平滑迁移到kafka
直入主题,不讨论为什么迁移,直接谈迁移方案。既然是从AMQ(AtiveMQ的简称)迁移到kafka,那么迁移过程中肯定需要做到平滑迁移:对于业务没有影响,对于上下游系统没有依赖。由于系统一般会和多个上游,多个下游通过MQ中间件保持依赖关系,迁移的过程中,肯定要做到各个系统上线没有任何依赖。打个比方订单系统发送topic,会员系统和积分系统都会接收这个topic(会员增加成长值,积分系统加积...原创 2018-06-30 21:10:38 · 1254 阅读 · 0 评论 -
3. kafka开启JMX
开启JMXkafka开启JMX的2种方式: 1. 启动kafka时增加JMX_PORT=9988,即JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties 2. 修改kafka-run-class.sh脚本,第一行增加JMX_PORT=9988即可。事实上这两种配置方式背后的原理是一样的,我们看...原创 2018-06-25 23:00:08 · 23766 阅读 · 5 评论 -
2. kafka安装
这篇文章主要讲解kafka单机安装,以及集群安装。kafka的单机安装非常简单,只需按照下一段落提到的几步操作即可。单机安装下载 首先从官方下载安装包,官方地址:http://kafka.apache.org/downloads。kafka安装包和一般安装包的命名方式不一样,我们看一个kafka包命名:kafka_2.11-1.1.0.tgz,其中2.11是scala的版本,1.1...原创 2018-06-23 10:35:08 · 520 阅读 · 0 评论 -
9. kafka shell脚本用法详解
kafka安装目录下的bin目录包含了很多运维可操作的shell脚本,列举如下: 脚本名称 用途描述 connect-distributed.sh 连接kafka集群模式 connect-standalone.sh 连接kafka单机模式 kafka-acls.sh todo kafka-broker-api-versions.sh ...原创 2018-07-14 21:18:51 · 15141 阅读 · 5 评论