- 博客(3)
- 资源 (7)
- 收藏
- 关注
转载 Kafka客户端是如何找到 leader 分区的
在正常情况下,Kafka中的每个Topic都会有很多个分区,每个分区又会存在多个副本。在这些副本中,存在一个leader分区,而剩下的分区叫做 follower,所有对分区的读写操作都是对leader分区进行的。所以当我们向Kafka写消息或者从Kafka读取消息的时候,必须先找到对应分区的Leader及其所在的Broker地址,这样才可以进行后续的操作。本文将要介绍的就是 Kafka 是如何找到 leader 分区的。我们知道, Kafka 是使用 Scala 语言编写的,但是其支持很多语言的客户端,
2020-07-07 00:10:06 1774
转载 semaphore(信号量)内部实现原理
Semaphore用于管理信号量,在并发编程中,可以控制返访问同步代码的线程数量。Semaphore在实例化时传入一个int值,也就是指明信号数量。主要方法有两个:acquire()和release()。acquire()用于请求信号,每调用一次,信号量便少一个。release()用于释放信号,调用一次信号量加一个。信号量用完以后,后续使用acquire()方法请求信号的线程便会加入阻塞队列挂起。本篇简单分析Semaphore的源码,说明其实现原理。 Semaphore对于信号量的控制是基于AQS(
2020-07-06 01:19:36 2160
转载 CountDownLatch内部实现原理, 基于AQS
CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch使用示例:首先我们写一个示例,看看怎么使用CountDownLatch工具类CountDownLatchTest.java 1 2 3 4 5 6 7 8 9 10 11 12 13
2020-07-06 01:00:12 370
jsoup爬虫案例
2017-09-18
java开发文档1
2017-09-05
java开发文档3
2017-09-05
开发文档2啊 java的
2017-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人