kafka

kafka学习

笔记

  • 消费者是消费者群组的一部分,也就是说,会有一个或多个消费者共同读取一个主题。群 组保证每个分区只能被一个消费者使用
  • 一个分区从属于一个 broker,该 broker 被称为分区的首领。一个分区 可以分配给多个 broker,这个时候会发生分区复制。这种复制机制为分区提供了消息冗余,如果有一个 broker 失效,其他 broker 可以接管领导权。
  • 为了能让分区分布到所有 broker 上,主题分区的个数必须要大于 broker 的个数。拥有大量消息的主题如果要进行负载分散,就需要 大量的分区。
  • 日志过期时间= 时间保留数据值 + 日志片段存满的时间
  • 对于使用时间 戳获取偏移量的操作来说,日志片段越小,结果越准确。

快速开始

  1. linux环境下安装zookeeper、kafka、jdk1.8

  2. 启动zookper、kafka

  3. 创建topic:myTopic

 bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic myTopic

4.生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic myTopic

5.消费者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic myTopic --from-beginning

6.运行截图
在这里插入图片描述

在这里插入图片描述

硬件的选择

垃圾回收机制

G1 垃圾回收器

  • MaxGCPauseMillis: 该参数指定每次垃圾回收默认的停顿时间。该值不是固定的,G1 可以根据需要使用更 长的时间。它的默认值是 200ms。也就是说,G1 会决定垃圾回收的频率以及每一轮需 要回收多少个区域,这样算下来,每一轮垃圾回收大概需要 200ms 的时间。
  • InitiatingHeapOccupancyPercent: 该参数指定了在 G1 启动新一轮垃圾回收之前可以使用的堆内存百分比,默认值是 45。 也就是说,在堆内存的使用率达到 45% 之前,G1 不会启动垃圾回收。这个百分比包括 新生代和老年代的内存。

数据中心布局

放在不同的服务器

创建Kafka生产者

属性作用
bootstrap.servers指定 broker 的地址清单,地址的格式为 host:port清单里不需要包含所有的 broker 地址,生产者会从给定的 broker 里查找到其他 broker 的信息。不过建议至少要 提供两个 broker 的信息,一旦其中一个宕机,生产者仍然能够连接到集群上。
key.serializerbroker 希望接收到的消息的键和值都是字节数组。生产者接口允许使用参数化类型,因此可以把 Java 对象作为键和值发送给 broker。key.serializer 必须被设置为一 个实现了 org.apache.kafka.common.serialization.Serializer 接口的类,生产者会使 用这个类把键对象序列化成字节数组。
value.serializer与 key.serializer 一样,value.serializer 指定的类会将值序列化。如果键和值都是字 符串,可以使用与 key.serializer 一样的序列化器。如果键是整数类型而值是字符串, 那么需要使用不同的序列化器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值