- 博客(19)
- 收藏
- 关注
原创 Java Timer 实现原理
特性Timer线程数量1(单线程)调度方式优先队列 + sleep/wait任务异常处理会终止整个线程并发任务能力不支持替代方案。
2025-06-15 18:56:59
228
原创 为什么抛出InterruptedException要清除线程中断状态?
你在餐厅次饭,你需要叫服务员,这时候你按了桌子上的呼叫按钮,按钮变亮。1.先灭灯,表示已经收到了你的请求,避免其他服务员重复服务。2.然后再走过来,帮你处理需求。
2025-06-09 21:07:45
134
原创 【手摸手】教你实现自己的 Java Future
你终于鼓起勇气,发了条微信表白:“小美,其实,我喜欢你很久了,你可以做我女朋友吗?”(提交任务,等待女神回复)。你知道她可能不会立刻回复,于是你继续敲代码、改bug。(主线程继续干活)。你决定放弃:不打算做舔狗了。(任务超时超时 or 取消)你是一位痴情的程序员(主线程),你有一位喜欢的女神(任务目标)。你忐忑不安,你偶尔偷瞄手机看看有没有回复。你迫不及待,点开女神的聊天界面等待回复消息(女神说你是好人但不合适:表白失败(任务异常)女神被别人追到手,被截胡。
2025-06-08 18:55:31
213
原创 Kafka是怎么保证消息不丢失的?
阶段机制作用Produceracks=all + retries + 幂等性避免生产消息丢失、重复Broker多副本同步 + 持久化 + 禁止脏选主保证消息可靠落盘Consumer手动提交 offset + 幂等处理避免消费丢失/重复。
2025-06-04 22:10:34
308
原创 什么是 Kafka 的 高水位(High Watermark, HW)?
Kafka 中,每个 partition 的消息都有一个(偏移量),代表消息在该 partition 中的顺序编号。
2025-05-29 18:50:12
227
原创 雪花算法-实现分布式Id
最早由 Twitter 提出,旨在高性能、高可用环境下生成全局唯一、有序的 64 位整型 ID。有多种实现方式,我们采用hutool的IdUtil。Snowflake 是一种经典的。怎么样是不是很简单。
2025-05-28 19:23:18
357
原创 替代 Docker Desktop!我为什么推荐 Orbstack?
是一款专为 macOS 打造的 Docker 与 Linux 虚拟机引擎,主打。它兼顾了 Docker Desktop 的完整功能与 WSL 的高性能体验,可视为二者的融合体,真正做到了为开发者而生。
2025-05-28 14:55:50
134
原创 Java正则表达式快速入门
贪婪模式是正则表达式默认的匹配方式。它会尝试匹配尽可能多的字符,直到整个表达式无法再匹配更长字符串为止。它满足匹配条件后不会停止,而是尽量往后多匹配。量词符号(贪婪)量词含义0 次或多次1 次或多次?0 次或 1 次{n,}至少 n 次例子css复制编辑regex复制编辑<.*>.*是贪婪匹配,尽可能多匹配。匹配结果是:css复制编辑整个字符串从第一个到最后一个都被匹配了。模式匹配原则示例匹配结果贪婪模式尽可能多匹配非贪婪模式尽可能少匹配<div>和<div>
2025-05-22 15:48:00
736
原创 Docker安装mysql
查询指定的版本https://hub.docker.com/_/mysql?tab=tags找到你想要下载的版本docker pull mysql:8.0.29-oracle复制命令执行检查下载的镜像[root@localhost ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 8.0-oracle 4a7183
2022-05-09 00:25:28
260
原创 CentOS 安装Docker教程
准备工作1.检查内核版本docker 要求Cent OS内核版本高于3.10。通过 uname -r 命令查看你当前的内核版本[root@localhost ~]# uname -r3.10.0-693.el7.x86_642.更新yum使用root权限登录centos 确保yum包更新到最新sudo yum update3.如果之前已经安装过Docker,卸载旧版本sudo yum remove docker \ docker-client \
2022-05-07 21:25:50
286
原创 Linux免密登录
需求在开发中我们每次ssh到linux服务器都需要输入密码,似乎有点麻烦。有没有什么办法?原理在机器A上生成一对公私钥A将公钥拷贝给B,在B中重命名为authorized_keys(放在当前用户目录下的.ssh目录下)A向B发送一个登录链接请求B得到A的登录请求信息后,在authorized_keys中查找,如果有相应的用户名和IP,则随机生成一个字符串string_text,并且使用A的公钥加密,随后发送给AA接收到B发送过来的消息后,使用自己的私钥解密,然后将解密后的字符串发送给BB接
2022-05-06 23:56:00
4314
原创 Mac WMware Fusion 虚拟机nat网络配置
Mac WMware Fusion 虚拟机NAt网络配置WMware Fusion配置1.VMware Fusion 偏好设置2.选择网络3.点击解锁按钮 点击加号新增一个网络连接4.配置子网ip(可以和主机IP不在一网段)和子网掩码5.最后别忘了点击应用哦主机配置1.打开终端2.执行命令cd /Library/Preferences/VMware Fusionsudo vim /Library/Preferences/VMware\ Fusion/networking3.配置与
2021-12-06 23:06:47
1659
原创 CAP定理
什么是CAP定理?1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。它们的第一个字母分别是 C(consistency)、A(availability)、P(partition tolerance)。Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。CAP具体含义如下:一致性(consistency):保证有所节点在同一时刻具有相同的、逻辑一致的数据,等同于所有节点同时访问到一致的(最新的)的副本。比如,向节点1写入数据V0,.
2021-10-05 23:38:23
697
原创 Java实现常见的负载均衡
Java实现常见的负载均衡算法什么是负载均衡?负载平衡(Load balancing)是一种电子计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软件和硬件来完成。 主要作用是将大量作业合理地分摊到多个操作单元上进行执行,用于解决互联网架构中的高并发和高可用的问题。常见的负载均衡算法1
2021-08-27 20:41:40
8386
原创 延迟队列DelayQueue
1.什么是延时队列延时队列:delayed元素的**无限制阻塞队列**,在该队列中,仅当元素的延迟到期时才可以使用该元素。 队列的开头是该Delayed元素,其延迟在过去最远的时间到期。 如果没有延迟,则没有头, poll将返回null 。 当元素getDelay(TimeUnit.NANOSECONDS)方法返回小于或等于零的值时,就会发生过期。 即使未到期的元素无法使用take或poll删除,它们也被视为普通元素。 例如, size方法返回过期和未过期元素的计数。 此队列不允许使用null元素。
2021-03-23 21:31:07
661
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人