- 博客(20)
- 收藏
- 关注
原创 kafka 学习笔记
获取消息的线程可以是一个,也可以是多个,每个线程维护专属的 KafkaConsumer 实例,处理消息则交由特定的线程池来做,从而实现消息获取与消息处理的真正解耦。最好禁止 Unclean 领导者选举 : 因为 follower 与 leader 之间总会存在消息差,若 follower 替换原来的 leader ,会出现消息丢失的情况!当 consumer 消费完消息后,需要记录新的 offset,有两种选择,一是自动提交,二是手动提交。不小于** leader 拉取消息的速度。
2023-04-17 22:46:04
165
原创 Sentinel源码学习笔记
官网上的架构图Sentinel 的核心部分为,由图可知是由将不同的 slot 按照指定顺序串在一起(责任链模式),通过此过滤链可以将监控统计、限流、熔断降级等功能整合在一起。系统会为每一个资源创建一套 SlotChain!ps:使用@SentinelResource 注解定义资源并配置 blockHandler 和 fallback 函数来进行限流之后的处理。
2023-04-06 10:26:03
187
原创 事务原理知识记录
事务事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。特性原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
2023-03-05 12:44:31
79
原创 Java线程池实现原理
增加线程是通过线程池中的addWorker方法,该方法的功能就是增加一个线程,该方法不考虑线程池是在哪个阶段增加的该线程,这个分配线程的策略是在上个步骤完成的,该步骤仅仅完成增加线程,并使它运行,最后返回是否成功这个结果。线程池中线程的销毁依赖JVM自动的回收,线程池做的工作是根据当前线程池的状态维护一定数量的线程引用,防止这部分线程被JVM回收,当线程池决定哪些线程需要回收时,只需要将其引用消除即可。线程池运行的状态,并不是用户显式设置的,而是伴随着线程池的运行,由内部来维护。
2023-03-03 21:05:57
153
原创 Redis搭建分片集群
Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上。数据key不是与节点绑定,而是与插槽绑定。ps:集群操作时要给 redis-cli 加上 -c 参数。客户端请求可以访问集群任意节点,最终都会被转发到正确节点。集群中有多个master,每个master保存不同数据。先启动 6个 redis 节点,配置文件为。每个master都可以有多个slave节点。创建完成后可以通过命令来查看集群状态。redis分片集群节点数量多,如图。为什么是16384个?
2023-03-03 10:55:38
151
原创 @ControllerAdvice 之 @InitBinder和@ModelAttribute
@ControllerAdvice 之 @InitBinder和@ModelAttribute
2023-02-09 17:39:06
223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人