上一页 1 2 3 4 5 6 ··· 67 下一页
摘要: 我们说客户端与服务端建立连接交互的时候会创建一个 Session 与之对应,那假设客户端请求来了,服务端是如何处理的?Session 又是如何创建出来的? 我们先来看第一个问题:服务端如何处理客户端发来的请求? 一、如何处理请求 所谓的请求全称是网络请求,涉及到网络就少不了 Socket 通信,Zo 阅读全文
posted @ 2023-04-05 11:53 Dazzling! 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 我们的 Leader 已经选举出来了,那接下来该干什么呢?你或许很快能想到,那就是数据同步。通俗地讲,就是 Leader 选出来了,各自的角色都确定好了,那 Follower 和 Observer 自然要同 Leader 建立连接同步数据,这里就引入了 ZooKeeper 的另一个核心知识:Sess 阅读全文
posted @ 2023-04-02 22:40 Dazzling! 阅读(106) 评论(0) 推荐(0) 编辑
摘要: Leader 选举过程中怎么把票发出去的?发出去后其他节点是怎么收到票的? 这两个问题的答案说简单点那肯定是通过网络传输,那问题又来了:节点之间是怎么建立连接的? 先来分析下 Leader 选举发起投票以及接收投票这部分内容的网络通信原理以及简易架构图,然后再对照着思想进行源码剖析。话不多说,让我们 阅读全文
posted @ 2023-03-30 20:53 Dazzling! 阅读(63) 评论(0) 推荐(0) 编辑
摘要: Leader 选举的核心底层原理可以很简单地概述为:核心参数是 logicClock 逻辑时钟、 epoch、事务次数、myid,核心流程为:先对比 logicClock,再对比 epoch,其次对比事务次数,最后对比myid。 一、投给自己,异步广播 首先明确的一点是只有状态是 LOOKING 的 阅读全文
posted @ 2023-03-29 21:01 Dazzling! 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 其实在 Java 并发编程这个领域中,隐藏了许多的“设计模式”,并发编程的设计模式和我们常谈的“单例模式”、“工厂模式”这类“设计模式” ,其实可以理解为都是对代码精良设计的思想提炼。 Producer Consumer 模式 Producer-Consumer 模式是大众们使用最多的模式之一,它的 阅读全文
posted @ 2023-03-26 11:27 Dazzling! 阅读(46) 评论(0) 推荐(0) 编辑
摘要: ThreadLocal的功能在Java多线程并发环境中非常实用,其作用是提供线程本地变量,例如用户ID、会话ID等与当前线程密切关联的信息。那么它在实际业务场景中可以怎么使用呢?让我们一起来看看下边这个案例。 有一台 Web 服务器,需要设计一个组件,用于记录每次请求完整执行的耗时时长,整体流程如下 阅读全文
posted @ 2023-03-25 23:23 Dazzling! 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 相信在实际工作中,大家对于线程池的使用并不陌生,例如以下几个应用场景: 支付成功之后,异步发送短信通知用户; 公司的OA系统中,提交某些申请之后,异步发送给各个部门负责人进行审批; 请求某个接口时,需要做些日志上报之类的记录。 线程池的使用 下边是一个非常简单的线程池使用案例: public cla 阅读全文
posted @ 2023-03-25 14:51 Dazzling! 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Java 内部提供了两种方式来解决线程安全问题,一种是加入synchronized 关键字,另一种则是使用 Lock 锁。虽然说这两种方式都能解决掉线程安全的问题,但是在某些场景下会稍微有些麻烦,例如下边这个场景,每次请求接口都会对 reqCount 做一次加一操作: @RestController 阅读全文
posted @ 2023-03-25 09:58 Dazzling! 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 相信大家在实际工作中,都或多或少了解过生产者消费者模型,在一些基于内存进行设计的消息队列模型中,当有新消息写入的时候,消息会被投递到一条内存队列中,然后消费者会自动收到通知进行消费。 通常我们称投递消息的一方为生产者,取出消息的一方为消费者。如果要用伪代码去表示这个流程的话,大概如下所示: //生产 阅读全文
posted @ 2023-03-20 21:05 Dazzling! 阅读(92) 评论(0) 推荐(0) 编辑
摘要: AQS 全称是 AbstractQueuedSynchronizer,是一个抽象队列同步器,JUC 包的大部分并发工具类都是依托于它去实现的,所以如果希望理解 JUC 中的各种组件原理,就一定要搞懂AQS。 我个人认为,AQS 内部的许多机理,其实和现实生活中的某些场景还是比较相似的,例如银行办理业 阅读全文
posted @ 2023-03-19 22:03 Dazzling! 阅读(43) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 67 下一页