创建Kafka生产者:

  Kafka生产者有3个必选属性:

    bootstrap.servers   broker地址清单,格式为host:port   ,清单中不必包含所有broker,但至少2个

    key.serializer  = org.apache.kafka.common.serialization.Serializer 接口类,生产者使用这个类把键对象序列化为字节数组

        Kafka还提供了ByteArraySerializer,StringSerializer,IntegerSerializer 实现类

    value.serializer  与key.serializer可以将值序列化

  

发送消息有3种方式:

  发送并忘记(fire-and-forget)  发送消息给服务器,但是不关心是否正常到达

  同步发送  使用send()发送信息,返回一个future对象,调用get()方法进行等待,了解信息是否正常发送

  异步发送    调用send()函数,并指定一个回调函数,服务器在返回响应时调用该函数

生产者的可选属性:

  acks 指定有多少个分区副本收到消息,生产者才会认为消息写入是成功的

    ack=0  生产者在成功写入消息之前不会等待任何来自服务器的响应

    ack=1 只要集群的首领节点收到信息,生产者就会收到一个来自服务器的成功响应

    ack=all 所有参数与复制的节点全部收到消息,生产者才会收到一个来自服务器的响应,这种模式最安全

  buffer.memory  设置生产者内存缓冲区大小,生产者使用它缓冲要发送到服务器的消息

  compression.type  默认消息发送不使用压缩,该参数可以设置为snappy,gzip,lz4

  retries 生产者可以重发消息的次数,默认 每次重试之间等待100ms,可以使用参数 retry.backoff.ms参数改变这个时间间隔

  batch.size 指定一个批次可以使用的内存大小,按照字节数计算

  linger.ms 指定生产者在发送批次之前等待更多消息加入批次的时间。Kafkaproducer 会在批次填满或linger.ms达到上限时把批次发送出去

  client.id 该参数可以指定任意的字符串,服务器会用它识别信息的来源,还可以用在日志和配额指标里

  max.in.flight.requests.per.connection  指定生产者在收到服务器响应之前可以发送多少个消息,值越高越占用内存;设为1可以保证消息是按照发送顺序写入服务器的

  timeout.ms   reuqest.timeout.ms   metadata.fetch.timeout.ms

    request.timeout.ms 指定生产者在发送数据时等待服务器返回响应的时间

    metadata.timeout.ms 指定生产者在获取元数据时等待服务器返回响应时间

    tiemout.ms指定broker等待同步副本返回消息确认的时间,与acks的配置相匹配

  max.block.ms  指定调用send()或partitionsFor()方法获取元数据时生产者的阻塞时间,当阻塞时间到达max.block.ms时,生产者会抛出异常

  max.request.size 控制生产者发送的请求大小,指能发送的单个消息的最大值或单个请求里所有消息的总和

      broker对可接收的消息最大值也有自己的限制(message.max.bytes),两边配置最好匹配,避免生产者发送消息被拒绝

  receive.buffer.bytes 和 send.buffer.bytes

      这2个参数分别指定了TCP socket接收和发送数据包缓冲区大小,默认-1

  max.in.flight.requests.per.connection=1 保证了消息的顺序,如果大于1,第一批次写入失败后,重试成功可能会改变消息的顺序

序列化器:

  自定义序列化器

  Avro序列化

    Kafka使用Avro序列器是通过schema注册表来实现的,schema注册表不属于Kafka

    

  

转载于:https://www.cnblogs.com/zy1234567/p/10339868.html

kafka笔记3(生产者)相关推荐

  1. Kafka笔记整理(一)

    [TOC] Kafka简介 消息队列(Message Queue) 消息 Message网络中的两台计算机或者两个通讯设备之间传递的数据.例如说:文本.音乐.视频等内容. 队列 Queue一种特殊的线 ...

  2. 【Kafka笔记】4.Kafka API详细解析 Java版本(Producer API,Consumer API,拦截器等)

    简介 Kafka的API有Producer API,Consumer API还有自定义Interceptor (自定义拦截器),以及处理的流使用的Streams API和构建连接器的Kafka Con ...

  3. 【MQ】Kafka笔记

    笔记来源:尚硅谷视频笔记2.0版+2.1版 黑马视频:Kafka深入探秘者来了 kafka笔记地址:https://blog.csdn.net/hancoder/article/details/107 ...

  4. 限量笔记!Alibaba技术官都叹服的,Kafka笔记你逃不了的!

    前言: Kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就 ...

  5. kafka笔记——入门介绍

    中文文档 目录 kafka的优势 首先几个概念 kafka的四大核心API kafka的基本术语 主题和日志(Topic和Log) 每个分区都是一个顺序的,不可变的队列,并且可以持续的添加,分区中的每 ...

  6. kafka笔记4--安装kafka ui

    kafka笔记4--安装kafka ui 1 介绍 2 安装 & 测试 2.1 docker 部署 kafka-ui 2.2 测试 3 注意事项 4 说明 1 介绍 文章 Overview o ...

  7. kafka查询offset生产者offset计算消费offset计算

    本文目录 kafka查询offset&生产者offset计算&消费offset计算 1.简介 2.需求背景 3.前期准备 4.获取kafka生产者的offset以及消费者的offset ...

  8. Kafka笔记-kafka外网搭建及构建生产者

    程序运行截图如下: 后端如下: 消费者如下: 这里启动kafka先要运行zookpeer ./zookeeper-server-start.sh ../config/zookeeper.propert ...

  9. Kafka笔记-搭建及单机生产者、消费者操作

    Kafaka面向数据流的生成转换消费的流处理平台 Kafaka基本概念 Producer:消息和数据的生产者,向Kafka的一个topic发布消息的进程/代码/服务 Consumer:消息和数据的消费 ...

最新文章

  1. java poi 读取xlsx文件_使用POI读取xlsx文件(SXSSFWorkbook)
  2. 【跃迁之路】【552天】程序员高效学习方法论探索系列(实验阶段309-2018.08.11)...
  3. Android SDK镜像的介绍使用【转发】
  4. loading加载和layer.js
  5. 变异测试 java_编码的喜悦……以及Java中的变异测试
  6. java quartz没执行完_quartz 防止上一任务未执行完毕,下一时间点重复执行
  7. 本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏
  8. Python:正则表达式
  9. 程序员会写诗是怎样的体验
  10. 案例-分页按钮(CSS3)
  11. [转] Android SDK manager 无法获取更新版本列表
  12. apache的虚拟目录配置
  13. PDF文件在线合并如何操作
  14. 线性回归 T检验P值计算
  15. VBA自动创建数据透视表
  16. oeasy教您玩转python - 003 - # - 继续运行
  17. 软件测试员工作经验分享
  18. 使用PHP编写的基于MySQL博客模板-可直接使用
  19. 【编程题训练】统计射击比赛成绩
  20. Android 之 日期时间 时区同步

热门文章

  1. UA MATH563 概率论的数学基础 鞅论初步8 鞅收敛定理
  2. Prolog基本程序
  3. 三套JSP源代码的安装部署过程和遇到的问题图解
  4. 在8086模拟器中运行汇编求平均值程序
  5. 学习笔记97—matlab 获取矩阵中特定值的坐标
  6. Docker核心技术 1
  7. Linux网络编程——I/O复用之poll函数
  8. [Android] 开发第六天
  9. FreeRTOS知识点
  10. 代码坏味道 - 耦合