![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 87
Ccccccc牛逼
这个作者很懒,什么都没留下…
展开
-
Java并发机制知识点(volatile、synchronized、CAS)
1.volatile关键字volatile是轻量级的synchronized,它在多线程开发中保证了共享变量的“可见性”,可见性就是说当一个线程修改一个共享变量时,另外的一个线程能立刻读到这个修改的值。它不会引起线程上下文切换(线程上下文切换指的是线程在切换的时候会先保存当前执行的状态,以便下次切换回来继续执行,所以从保存到下次切换回来的过程就是一次上下文切换)。对volatile修改的变量进行写操作会做两件事情(1)将当前处理器缓存行的数据写回到系统内存。(2)这个写回内存的操作会使在其他CPU里原创 2021-05-11 16:59:20 · 148 阅读 · 0 评论 -
详解Kafka的高水位(HW)和Leader Epoch
1.回顾ISR2.介绍HW3.HW的作用4.leader副本和follower副本是如何通过HW进行同步的,以及这样会有什么问题。5.Leader Epoch的作用6.Leader Epoch是如何解决消息丢失和消息不一致的问题的。原创 2021-04-26 17:56:16 · 6038 阅读 · 1 评论 -
Kafka的事务
幂等性生产者在进行重试的时候有可能会重复写入消息,而使用Kafka的幂等性功能之后就可以避免这种情况。在生产者客户端配置enable.idempotence设置为true。如果配置了这个参数,那么retries必须大于0,acks=-1,max.in.flight.requests.per.connection不能大于5。Kafka为此引入了product id(PID)和序列号这两个概念,每个新的生产者实例在初始化的时候都会被分配一个PID,对于每一个PID,消息发送到的每个分区都有对应的序列号,这原创 2021-04-14 22:15:51 · 378 阅读 · 0 评论 -
Kafka分区分配策略以及重平衡过程总结
1.RangeAssignor分配策略(kafka默认的分区策略)partition.assignment.strategy=org.apache.kafka.clients.consumer.RangeAssignor按照消费者总数和分区总数进行整除运算来获得一个跨度,然后将分区按照跨度进行平均分配,以保证分区尽可能均匀地分配给所有的消费者。该策略会将消费者组内所有订阅这个主题的消费者按照名称的字典序排序,然后为每个消费者划分固定的分区范围,如果不够平均分配,那么字典序靠前的会被多分配一个分区.假原创 2021-04-13 15:42:34 · 2066 阅读 · 0 评论 -
消费者组重平衡全流程解析
1.什么是消费者组重平衡消费者组重平衡的作用就是让组内的所有消费者实例就消费哪些主题分区达成一致。重平衡需要借助Kafka的broker端的Coordinator 组件,Coordinator在整个重平衡过程中充当协调器,协助消费者组完成重平衡。2.什么情况下会触发重平衡·消费者组内成员发生变化·消费者组订阅的主题数量发生变化·订阅的主题内的分区数发生变化一般情况下,第一种情况比较常发生,当我们依次启动消费者组内的消费者实例的时候其实就会触发重平衡。3.重平衡过程是如何通知到其他消费者实例的原创 2021-03-28 18:39:05 · 395 阅读 · 1 评论 -
Linux系统搭建Kafka集群
之前文章介绍了单结点Kafka的搭建与启动,由于在生产环境Kafka肯定是要搭建集群的,所以这篇文章准备介绍和记录一下自己如何搭建一个Kafka集群的。搭建准备:1.两台服务器,IP:154.8.214.111、121.4.148.2432.JKD:jdk1.8.0_2713.Kafka:kafka_2.11-2.1.14.Zookeeper:zookeeper-3.4.12因为zookeeper的容错机制,剩下可用节点数必须要大于n/2,zookeeper才可以正常使用,所以节点数最好是奇数,原创 2021-03-27 01:38:24 · 301 阅读 · 0 评论 -
Linux系统下Kafka的搭建与启动
这是我在CSDN上写的第一篇文章,从今天开始准备记录一些自己日常开发中遇到的问题以及技术总结。由于之前项目中用到了kafka中间件,自己也比较感兴趣,所以准备利用个人时间研究一下这个kafka,废话不多说,先来看看kafka的安装与搭建吧。1.准备工作Centos、JDK8、zookeeper,Kafka2.11由于kafka的运行是需要jdk环境的,所以提前将jdk、zookeeper、kafka的安装包下载到本地,并通过scp上传到远程服务器。以下是我准备的文件1.1 JDK配置修改/e原创 2021-01-25 18:13:13 · 952 阅读 · 0 评论