Loading

随笔分类 -  Java

摘要:前言 基于3.2.2-release版本 架构图 DS的架构图貌似年久失修,和代码已经有一些偏差了,不过还是可以用作参考。 官方文档:Dolphin Scheduler 系统架构设计 Master Worker之间的服务发现 DS抽象了一个Registry作为Master和Worker节点统一的注册 阅读全文
posted @ 2025-06-17 22:59 于花花 阅读(170) 评论(0) 推荐(0)
摘要:原文:How G1 Garbage Collector work in Java 作者:Perspective Mentor G1垃圾收集器采用了一个全新的垃圾收集方式,这让它在Java中的其它GC算法中鹤立鸡群。 介绍 G1(Garbage-First)是作为Parallel和CMS的替代者被引入 阅读全文
posted @ 2024-05-29 11:13 于花花 阅读(247) 评论(0) 推荐(0)
摘要:我们有一个A,引用B: public class A { private B b; public void setB(B b) { this.b = b; } public B getB() { return b; } @Override public String toString() { ret 阅读全文
posted @ 2023-12-04 21:53 于花花 阅读(343) 评论(0) 推荐(0)
摘要:本篇文章大量内容来源于官方的代码注释,看起来会比较枯燥,但了解Spring最直接,最正规的方式也就如此了。 庞大的BeanFactory家族 DefaultListableBeanFactory是支撑ApplicationContext底层的BeanFactory,它有一张错综复杂的继承关系图... 阅读全文
posted @ 2023-11-21 21:53 于花花 阅读(475) 评论(0) 推荐(0)
摘要:周末躺不平,摆不烂,卷不动,随便读一篇paper吧 原文:Kafka: a Distributed Messaging System for Log Processing 作者:Jay Kreps / Neha Narkhede / Jun Rao 这三尊神就是当初在LinkedIn开发Kafka的 阅读全文
posted @ 2023-10-14 17:03 于花花 阅读(724) 评论(0) 推荐(0)
摘要:CVTE的面试里第二个答的不好的地方就是ConcurrentHashMap。 构造方法 默认构造方法 // 创建一个新的,具有默认表达小16的空Map public ConcurrentHashMap() { } 在默认构造方法中,我们可以看到ConcurrentHashMap实际上什么也没做,根据 阅读全文
posted @ 2023-02-18 20:22 于花花 阅读(91) 评论(0) 推荐(0)
摘要:从高层来看 AQS,即AbstractQueuedSynchronizer类,无论是听起来还是看起来,它都很令人畏惧,但抛离它的实现原理,站在AQS的用户——比如Mutex、CountDownLatch这些类——的视角来看,AQS是一个非常好的助手。 AQS是一个用于实现同步器工具的框架,信号量、M 阅读全文
posted @ 2023-01-31 11:17 于花花 阅读(140) 评论(0) 推荐(0)
摘要:前言 最近在学Rust,今天突然想到一段Java代码 public class Main { public static void main(String []args) { int a = 16; new Thread(() -> { System.out.println(a); }).start 阅读全文
posted @ 2022-12-29 20:30 于花花 阅读(299) 评论(1) 推荐(1)
摘要:最多一次:消息最多被消费一次,可能丢失 最少一次:消息最少被消费一次,可能被重复消费多次 精确一次:消息会且只会被消费一次 Producer默认语义 默认情况下,Kafka会在producer的消息写入到分区leader副本的磁盘日志文件中后发送响应,若producer没接收到响应,它会尝试重新发送 阅读全文
posted @ 2022-10-31 18:00 于花花 阅读(180) 评论(0) 推荐(0)
摘要:Controller? 就是平时说的集群leader,和分区leader不是一个概念,这是在集群中的所有broker中选出一个唯一的leader,它用来控制整个集群的各种事宜,所以叫Controller。 怎么控制 整个Kafka集群实际上是建立在Zookeeper上的,所以集群的控制实际上也就是各 阅读全文
posted @ 2022-10-31 14:46 于花花 阅读(99) 评论(0) 推荐(0)
摘要:本地LEO和Remote LEO Kafka分区的follower副本的LEO属性保存了两份: 本地LEO:在follower副本所在broker的缓存中保存一份 Remote LEO:在leader副本所在的broker的缓存中保存一份(Remote LEO) 本地LEO很简单,就是followe 阅读全文
posted @ 2022-10-30 12:15 于花花 阅读(654) 评论(0) 推荐(0)
摘要:poll IO模型与内部线程 Consumer消费多个来自多个Topic的多个分区的数据,在新版本中,它使用类似select、epoll这种IO模型来达到用一个线程管理多个来源的数据的功能。 不过,Consumer内部还是分为两个线程: Heartbeat线程:定时向broker发送heartbea 阅读全文
posted @ 2022-10-28 13:18 于花花 阅读(304) 评论(0) 推荐(0)
摘要:Producer Producer做的工作 确认消息发送到的partition,相同key映射到相同分区,无key轮询 寻找分区的leader所在的Kafka broker,Producer可以选择不同的策略来发送消息 直接发送成功 leader响应写入操作后成功 ... Producer异常 Pr 阅读全文
posted @ 2022-10-26 07:17 于花花 阅读(127) 评论(0) 推荐(0)
摘要:Producer新旧对比 新版本: 发送过程被分为两个线程,一条消息发送后经用户主线程进入内存缓冲区,Sender I/O线程将缓冲区中的数据分批发给Kafka broker 完全异步发送消息,通过Future或Callback来通知发送者 分批机制,提升整体吞吐量 轮询方式对无key消息分区,更加 阅读全文
posted @ 2022-10-24 17:58 于花花 阅读(91) 评论(0) 推荐(0)
摘要:主要概念和术语 Event(事件)是一个现实世界或业务中发生的事,也叫消息或记录,说白了就是你写入Kafka的消息。Event具有key、value和timestamp,这和其它的消息系统有点儿不一样。 Producer和Consumer不介绍了,官方文档有这么一句话:Producer从不需要等待C 阅读全文
posted @ 2022-10-21 11:07 于花花 阅读(112) 评论(0) 推荐(0)
摘要:并发问题的根源 可见性:一个线程的操作结果是否对另一个线程可见 原子性:一个线程进行操作时是否会被其它线程干扰 可见性问题的来源 缓存:每一个线程会有自己的工作内存来缓存主存中的内容,线程通过这个缓存操作主存,所以可能存在刷新不及时的问题 指令重排:CPU会对编译后的字节码指令进行重排序后执行,原则 阅读全文
posted @ 2022-08-09 14:21 于花花 阅读(73) 评论(0) 推荐(0)
摘要:我有这样一个Service,我需要在外面注入queueSize和timeout这两个属性: @Service @Slf4j public class BlockingQueueMessageService implements MessageService, InitializingBean { p 阅读全文
posted @ 2022-07-31 09:43 于花花 阅读(122) 评论(0) 推荐(0)
摘要:最近想试试面试个实习生,于是就寻思快速的过一遍SpringBoot的课,所以就找了个网课来看。 我看的是这个:点击跳转,然后看了两天了,快撸完了,一点儿笔记没记,虽然记了也会忘,但还是感觉踏实一点。 parent以及starter 提供经过测试的兼容版本 通过父项目的dependencyManage 阅读全文
posted @ 2022-07-30 18:21 于花花 阅读(192) 评论(0) 推荐(1)
摘要:起因是在每一个类中我都得写上下面的代码: private Logger logger = LoggerFactory(this.getClass().getSimpleName()); 虽然不是很长,但是我就是不想写,每次写这个我都会很烦。开发中有很多属性都是这样。 然后,我就想到,如何将这一过程自 阅读全文
posted @ 2022-07-29 10:50 于花花 阅读(485) 评论(0) 推荐(0)
摘要:RowBounds的内存分页 SqlSession的各种查询方法中都有一个可选的RowBounds参数,该对象用于MyBatis实现内存分页: RowBounds有这样两个属性: private final int offset; private final int limit; limit是每一页 阅读全文
posted @ 2022-07-27 11:32 于花花 阅读(294) 评论(0) 推荐(0)