springboot之kafka配置参数

kafka的知识了解

  • 名词简单说明;
    • topic : 主题,特指kafka处理的消息源的不同分类
    • partition : topic物理上的分组,一个topic可以分为多个partition
      • 多个副本:选其中一个为leader,其余都是follower

    创建副本的单位是topic的分区,每个分区都有一个leader和零或多个followers.所有的读写操作都由leader处理,一般分区的数量都比broker的数量多的多,各分区的leader均匀的分布在brokers中。所有的followers都复制leader的日志,日志中的消息和顺序都和leader中的一致。flowers向普通的consumer那样从leader那里拉取消息并保存在自己的日志文件中。

分区与leader与follower区别

  • 引入依赖

    	<dependency>
              <groupId>org.springframework.kafka</groupId>
              <artifactId>spring-kafka</artifactId>
          </dependency>
    

简单使用方式

  • 配置文件
 # 指定kafka server的地址,集群配多个,中间,逗号隔开
spring.kafka.bootstrap-servers=1.1.1.1:9092

#-----product 生产者参数-----
# 指定消息key和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

demo:


 @Autowired
    private KafkaTemplate kafkaTemplate;

    @Test
    public void send(){
        //send(topic,消息信息)
        kafkaTemplate.send("test","242323424");
    }

附录一:

文献:

附录二

  • ProducerConfig values:生产者的默认配置:
	
	bootstrap.servers = [1.1.1.1:9092]
	acks = 1
		# 0:客户端发送了,认为是发送成功
	 	# 1:客户端发送了,分区leader收到了,认为是发送成功
		# all: 客户端发送了,分区leader收到了,其他副本follower也有了,认为是发送成功
	batch.size = 16384
	 	# 每个Batch要存放batch.size大小的数据后,才可以发送出去
	linger.ms = 0
		# 一个Batch被创建之后,最多过多久,不管这个Batch有没有写满,都必须发送出去了。避免达不到size导致无法发送
	buffer.memory = 33554432
		# 约束KafkaProducer能够使用的内存缓冲的大小的
		# 个人理解:类似于 文件字符流的管道大小
	retries = 2147483647
		# 失败重新发送次数
	retry.backoff.ms = 100
		# 每次重试的间隔是多少毫秒
		max.request.size = 1048576
		# 决定了每次发送给Kafka服务器请求消息的最大大小
	client.dns.lookup = default
	client.id = 
	compression.type = none
	connections.max.idle.ms = 540000
	delivery.timeout.ms = 120000
	enable.idempotence = false
	interceptor.classes = []
	key.serializer = class org.apache.kafka.common.serialization.StringSerializer
	max.block.ms = 60000
	max.in.flight.requests.per.connection = 5
	metadata.max.age.ms = 300000
	metric.reporters = []
	metrics.num.samples = 2
	metrics.recording.level = INFO
	metrics.sample.window.ms = 30000
	partitioner.class = class org.apache.kafka.clients.producer.internals.DefaultPartitioner
	receive.buffer.bytes = 32768
	reconnect.backoff.max.ms = 1000
	reconnect.backoff.ms = 50
	request.timeout.ms = 30000

	sasl.client.callback.handler.class = null
	sasl.jaas.config = null
	sasl.kerberos.kinit.cmd = /usr/bin/kinit
	sasl.kerberos.min.time.before.relogin = 60000
	sasl.kerberos.service.name = null
	sasl.kerberos.ticket.renew.jitter = 0.05
	sasl.kerberos.ticket.renew.window.factor = 0.8
	sasl.login.callback.handler.class = null
	sasl.login.class = null
	sasl.login.refresh.buffer.seconds = 300
	sasl.login.refresh.min.period.seconds = 60
	sasl.login.refresh.window.factor = 0.8
	sasl.login.refresh.window.jitter = 0.05
	sasl.mechanism = GSSAPI
	security.protocol = PLAINTEXT
	send.buffer.bytes = 131072
	ssl.cipher.suites = null
	ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
	ssl.endpoint.identification.algorithm = https
	ssl.key.password = null
	ssl.keymanager.algorithm = SunX509
	ssl.keystore.location = null
	ssl.keystore.password = null
	ssl.keystore.type = JKS
	ssl.protocol = TLS
	ssl.provider = null
	ssl.secure.random.implementation = null
	ssl.trustmanager.algorithm = PKIX
	ssl.truststore.location = null
	ssl.truststore.password = null
	ssl.truststore.type = JKS
	transaction.timeout.ms = 60000
	transactional.id = null
	value.serializer = class org.apache.kafka.common.serialization.StringSerializer

附录3

kafka配置图,来自http://shixinke.com/java/kafka-configuration

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java8新特性及实战视频教程完整版Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda 表达式可以使代码变的更加简洁紧凑。Java8实战视频-01让方法参数具备行为能力Java8实战视频-02Lambda表达式初探Java8实战视频-03Lambda语法精讲Java8实战视频-04Lambda使用深入解析Java8实战视频-05Lambda方法推导详细解析-上.wmvJava8实战视频-06Lambda方法推导详细解析-下Java8实战视频-07Stream入门及Stream在JVM中的线程表现Java8实战视频-08Stream知识点总结Stream源码阅读Java8实战视频-09如何创建Stream上集Java8实战视频-10如何创建Stream下集.wmvJava8实战视频-11Stream之filter,distinct,skip,limit,map,flatmap详细介绍Java8实战视频-12Stream之Find,Match,Reduce详细介绍Java8实战视频-13NumericStream的详细介绍以及和Stream之间的相互转换Java8实战视频-14Stream综合练习,熟练掌握API的用法Java8实战视频-15在Optional出现之前经常遇到的空指针异常.wmvJava8实战视频-16Optional的介绍以及API的详解Java8实战视频-17Optional之flatMap,综合练习,Optional源码剖析Java8实战视频-18初识Collector体会Collector的强大Java8实战视频-19Collector使用方法深入详细介绍-01Java8实战视频-20Collector使用方法深入详细介绍-02Java8实战视频-21Collector使用方法深入详细介绍-03.wmvJava8实战视频-22Collector使用方法深入详细介绍-04Java8实战视频-23Collector原理讲解,JDK自带Collector源码深度剖析Java8实战视频-24自定义Collector,结合Stream的使用详细介绍Java8实战视频-25Parallel Stream编程体验,充分利用多核机器加快计算速度Java8实战视频-26Fork Join框架实例深入讲解Java8实战视频-27Spliterator接口源码剖析以及自定义Spliterator实现一个Stream.wmvJava8实战视频-28Default方法的介绍和简单的例子Java8实战视频-29Default方法解决多重继承冲突的三大原则详细介绍Java8实战视频-30多线程Future设计模式原理详细介绍,并且实现一个Future程序Java8实战视频-31JDK自带Future,Callable,ExecutorService介绍Java8实战视频-32实现一个异步基于事件回调的Future程序.wmvJava8实战视频-33CompletableFuture用法入门介绍Java8实战视频-34CompletableFuture之supplyAsync详细介绍Java8实战视频-35CompletableFuture流水线工作,join多个异步任务详细讲解Java8实战视频-36CompletableFuture常用API的重点详解-上Java8实战视频-37CompletableFuture常用API的重点详解-下Java8实战视频-38JDK老DateAPI存在的问题,新的DateAPI之LocalDate用法及其介绍.wmvJava8实战视频-39New Date API之LocalTime,LocalDateTime,Instant,Duration,Period详细介绍Java8实战视频-40New Date API之format和parse介绍
Spring Boot提供了以下Kafka配置参数: 1. spring.kafka.bootstrap-servers:Kafka集群的地址列表,用逗号分隔。 2. spring.kafka.client-id:Kafka客户端ID,默认为空。 3. spring.kafka.consumer.auto-commit-interval:自动提交偏移量的时间间隔(毫秒)。默认值为5000。 4. spring.kafka.consumer.auto-offset-reset:当服务器上没有初始偏移量或当前偏移量不可用时,应该从哪里开始消费。可选值为latest(从最新记录开始消费)或earliest(从最早的记录开始消费)。默认为latest。 5. spring.kafka.consumer.enable-auto-commit:是否启用自动提交偏移量。默认为true。 6. spring.kafka.consumer.fetch-max-wait:等待从Kafka获取消息的最长时间(毫秒)。默认为500。 7. spring.kafka.consumer.group-id:这个消费者所属的消费者组ID。 8. spring.kafka.consumer.key-deserializer:键的反序列化程序类。 9. spring.kafka.consumer.value-deserializer:值的反序列化程序类。 10. spring.kafka.listener.concurrency:侦听器容器的并发性级别。默认为1。 11. spring.kafka.producer.acks:producer期望从broker收到的确认数。可选值为0(不需要确认),1(需要确认leader),all(需要确认所有副本)。默认为1。 12. spring.kafka.producer.batch-size:单个批次的大小(字节)。默认为16384。 13. spring.kafka.producer.bootstrap-servers:Kafka集群的地址列表,用逗号分隔。 14. spring.kafka.producer.buffer-memory:生产者可以使用的总内存字节来缓冲消息。默认为33554432。 15. spring.kafka.producer.compression-type:消息压缩类型(gzip,snappy或lz4)。默认为none。 16. spring.kafka.producer.key-serializer:键的序列化程序类。 17. spring.kafka.producer.retries:在抛出异常之前重试发送消息的次数。默认为0。 18. spring.kafka.producer.value-serializer:值的序列化程序类。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值