摘要: HashMap 的底层原理,这是 Java 集合框架中最核心、最常用的知识点,理解它能帮你解决实际开发中的哈希冲突、扩容、线程安全等问题。我会从数据结构、核心流程、扩容机制、JDK 版本差异四个维度,由浅入深拆解 HashMap 的底层逻辑。 一、HashMap 核心定位与基础结构 1. 核心定位 阅读全文
posted @ 2026-03-06 10:23 七星6609 阅读(17) 评论(0) 推荐(0)
摘要: 今天天气不错,但是赶上恶意加班心情就不爽,怀着不爽的心情干活,总能创造出更多的问题,这不,今天就自己挖了一个坑,自己跳进去了,好在上来了 经过是这样的,开始调试canal采集binlog时,由于添加了一个上报数量大小,随手打印了一个日志 logger.info("batchData:{}", bat 阅读全文
posted @ 2021-03-13 17:01 七星6609 阅读(814) 评论(0) 推荐(0)
摘要: 今天产品问了一个问题,问懵了 产品:canal在开通mysql权限时需要哪些权限 我:SELECT, REPLICATION SLAVE, REPLICATION CLIENT 产品:那SELECT权限要开通到表级还是库级(我们使用canal同步数据时最终选择到表) 我:en..... 晚会给你答案 阅读全文
posted @ 2021-03-06 16:59 七星6609 阅读(946) 评论(0) 推荐(0)
摘要: spring是在开发中使用比较广泛的开发套件,开箱即用,很是方便,比如在开发定时任务时,只需要使用@Schedule就可以轻松配置,简直不要很方便,但是如果开发了很多定时任务,而且有的定时任务执行时间比较长,如果没有设置线程池,可能会出现定时任务执行时间和实际指定的时间不一致的问题,下面是我们遇到的 阅读全文
posted @ 2021-01-29 15:41 七星6609 阅读(1476) 评论(1) 推荐(1)
摘要: DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 具体介绍这里不再赘述,官网和其他博客都很多:https://www.jianshu.com/p/f5f0d 阅读全文
posted @ 2021-01-24 22:54 七星6609 阅读(10179) 评论(0) 推荐(0)
摘要: 一、简述 Apache DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。有如下特性: 高可靠性 去中心化的多Master和多Worker, 自身支持HA功能, 采用任务队列来 阅读全文
posted @ 2021-01-24 21:41 七星6609 阅读(2349) 评论(0) 推荐(0)
摘要: 使用VMware虚拟机由于电脑关机时,虚拟机没关闭,导致虚拟机被挂起,再打开电脑继续运行虚拟机时,时间就变为上次关闭电脑的时间,导致虚拟机时间不对,下面使用ntp来处理时间同步问题 1.安装ntp yum -y install ntp 2.设置开机自启并启动ntp服务 systemctl enabl 阅读全文
posted @ 2021-01-18 22:45 七星6609 阅读(5835) 评论(0) 推荐(1)
摘要: 1.错误描述 我在Windows 10 系统下打包dolphinscheduler,上传到centos7解压之后,执行脚本报如下错误: -bash: ./dolphinscheduler-daemon.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录 ^M是什么东东,为什么会有^M 通 阅读全文
posted @ 2021-01-16 21:54 七星6609 阅读(1309) 评论(0) 推荐(0)
摘要: 通过配置VIP,在进行主备切换时,出现的报错信息: 1.当主备节点当前binlog文件名称相同时,原主节点的position小于主备切换后的position,出现如下报错: 2020-07-02 15:08:09,332 INFO [destination = 1-236 , address = / 阅读全文
posted @ 2020-11-22 20:24 七星6609 阅读(2397) 评论(0) 推荐(0)
摘要: 对于spark前来围观的小伙伴应该都有所了解,也是现在比较流行的计算框架,基本上是有点规模的公司标配,所以如果有时间也可以补一下短板。 简单来说Spark作为准实时大数据计算引擎,Spark的运行需要依赖资源调度和任务管理,Spark自带了standalone模式资源调度和任务管理工具,运行在其他资 阅读全文
posted @ 2020-11-21 23:29 七星6609 阅读(4903) 评论(0) 推荐(0)
摘要: 无论是传统行业,还是互联网行业,数据可用性都是至关重要的,虽然现在已经步入大数据时代,nosql比较流行,但是作为数据持久化及事务性的关系型数据库依然是项目首选,比如mysql。 现在几乎所有的公司项目,不说可用性必须达到5个9,至少也要要求,数据库出现问题,不能丢失数据,能够快速响应异常处理,下面 阅读全文
posted @ 2020-07-05 22:49 七星6609 阅读(3039) 评论(3) 推荐(4)
摘要: 当我们在线上运行项目时,依赖很多jar包,有时候某个类的全限定名,在多个包中出现,而某个包中的类的方法没有,而且在类加载时,刚好加载了这个类,可能会报找不到方法,或者找不到类的异常,这种情况就可能是类冲突: 如: java.lang.NoSuchMethodError: com.google.com 阅读全文
posted @ 2020-03-20 23:35 七星6609 阅读(1183) 评论(0) 推荐(0)
摘要: 平时在处理一个或几个机器运行环境时,一个机器一个机器处理也能接受,但是如果是一批机器,几十或几百台,要是一台一台去安装环境,光是输入同一的命令,估计你自己都想吐,所有聪明的人会想一些偷懒的办法,确实可以找到一些省时省力的方法,比如写一个批量处理shell脚本,这几天在处理一批(八九十台)机器环境,找 阅读全文
posted @ 2020-03-01 23:07 七星6609 阅读(4472) 评论(0) 推荐(2)
摘要: 在进行数据交换时,如果主键不是整型,需要对字符串,或联合主键拼接为字符串,进行hash,再进行取模分片,使用的是String自带的hashCode()方法,本来是件很方便的事,但是有些字符串取hashCode竟然是负数,使得分片为负数,找不到对应的分片,我们先看一下String 生成hashCode 阅读全文
posted @ 2020-02-23 21:23 七星6609 阅读(5367) 评论(0) 推荐(0)
摘要: 在安装完hive之后(hadoop-2.10.0安装hive-2.3.6),已经迫不及待的想尝试一下hive的一些用法,我们最常用的就是直接输入hive回车,使用的是cli(Command Line Interface )模式,下面介绍一下hive的使用以及一些常用的命令 1.首先查看hive帮助, 阅读全文
posted @ 2020-02-09 22:47 七星6609 阅读(1273) 评论(0) 推荐(0)
摘要: 公司建立数仓,hive是必不可少的,hive是建立在hadoop基础上的数据库,前面已经搭建起了hadoop高可用,要学习hive,先从搭建开始,下面梳理一下hive搭建过程 1.下载hive安装包 ,下载地址:https://hive.apache.org/downloads.html 找到自己h 阅读全文
posted @ 2020-02-07 23:40 七星6609 阅读(2571) 评论(0) 推荐(0)
摘要: mysql是我们最常用的开源的关系型数据库,mysql不同版本有时候安装的方式也不尽相同,下面以mysql5.7.28版本为例梳理一下安装细节: 1.下载mysql-5.7.28,URL:https://downloads.mysql.com/archives/community/ 我这里下载的是6 阅读全文
posted @ 2020-02-06 23:20 七星6609 阅读(17910) 评论(1) 推荐(2)
摘要: mysql是我们最常用的开源的关系型数据库,mysql不同版本有时候安装的方式也不尽相同,mysql-5.5和mysql-5.6安装大致相同,下面以mysql5.5.62版本为例梳理一下安装细节: 1.下载mysql5.5.62,URL:https://downloads.mysql.com/arc 阅读全文
posted @ 2020-02-05 23:20 七星6609 阅读(2574) 评论(0) 推荐(0)
摘要: 本篇介绍在centos7中搭建hadoop2.10高可用集群,首先准备6台机器:2台nn(namenode);4台dn(datanode);3台jn(journalnode);3台zk(zookeeper) IP hostname 进程 192.168.30.141 s141 nn1(namenod 阅读全文
posted @ 2020-02-02 23:31 七星6609 阅读(2155) 评论(0) 推荐(3)
摘要: 本篇介绍在centos7中大家hadoop2.10完全分布式,首先准备4台机器:1台nn(namenode);3台dn(datanode) IP hostname 进程 192.168.30.141 s141 nn(namenode) 192.168.30.142 s142 dn(datanode) 阅读全文
posted @ 2020-01-29 22:56 七星6609 阅读(1806) 评论(0) 推荐(0)
摘要: BlockingQueue(阻塞队列)是 Java 并发编程的核心组件,它既是「队列」(存储元素),又具备「阻塞」特性:当队列空时,取元素的线程会阻塞;当队列满时,存元素的线程会阻塞。这种特性让它成为线程池、生产者-消费者模型的核心底层依赖,本文会从「核心原理、核心实现类、底层机制、使用场景」四个维 阅读全文
posted @ 2026-03-07 22:30 七星6609 阅读(1) 评论(0) 推荐(0)
摘要: Java 并发工具类(JUC)提供了开箱即用的并发控制能力,避免我们重复造轮子。你提到的 CountDownLatch、CyclicBarrier、Semaphore、Exchanger 是最核心的四个,下面我会从核心作用、底层原理、使用场景、代码示例四个维度,把每个工具类讲清楚,方便你理解和使用。 阅读全文
posted @ 2026-03-07 21:26 七星6609 阅读(1) 评论(0) 推荐(0)
摘要: 原生Java NIO虽然解决了BIO“一连接一线程”的并发瓶颈,但在生产环境中存在多个难以规避的缺陷(俗称“坑”),这也是Netty能成为高性能网络编程主流框架的核心原因。下面针对你提到的4个核心问题,从问题本质、复现场景、原生代码痛点、Netty解决方案四个维度逐一拆解。 一、坑1:Selecto 阅读全文
posted @ 2026-03-07 17:58 七星6609 阅读(1) 评论(0) 推荐(0)
摘要: 这篇我用最直观的流程 + 极简图示,把传统 IO、mmap、sendfile、Netty 零拷贝全部讲透,面试、原理一步到位。 一、先看一张总览图(灵魂总结) 传统IO: 硬盘 → 内核读缓冲区 → 用户缓冲区 → Socket缓冲区 → 网卡 (4次拷贝 + 4次上下文切换) 零拷贝: 硬盘 → 阅读全文
posted @ 2026-03-07 17:00 七星6609 阅读(4) 评论(0) 推荐(0)
摘要: Java NIO(New IO,JDK 1.4引入)是对传统BIO的革命性升级,核心解决了BIO“一连接一线程”的高并发瓶颈。本文将从核心组件、底层原理、与操作系统IO模型的映射、高性能本质四个维度,由浅入深拆解Java NIO的底层逻辑,让你不仅会用,更懂其背后的实现。 一、Java NIO核心组 阅读全文
posted @ 2026-03-07 16:26 七星6609 阅读(2) 评论(0) 推荐(0)
摘要: epoll是Linux内核为解决高并发IO设计的多路复用机制,也是Nginx、Redis、Netty等高性能中间件的核心依赖。本文将从核心痛点、内核结构、四阶段执行流程、高性能本质、关键特性五个维度,用通俗的语言+硬核的底层逻辑,让你彻底搞懂epoll的工作原理。 一、为什么需要epoll?—— s 阅读全文
posted @ 2026-03-07 14:24 七星6609 阅读(2) 评论(0) 推荐(0)
摘要: IO多路复用是解决高并发IO的核心技术(Java NIO的Selector、Redis、Nginx等都基于它实现),select、poll、epoll是Linux系统下三种主流的多路复用机制,本质都是让一个线程管理多个IO文件描述符(FD),仅在FD就绪(可读/可写/异常)时才进行IO操作,避免了B 阅读全文
posted @ 2026-03-07 14:05 七星6609 阅读(4) 评论(0) 推荐(0)
摘要: Java IO包(java.io)是设计模式应用的经典案例,其核心类库通过多种设计模式解决了“不同数据源/数据类型的读写”“功能扩展”“资源管理”等核心问题。下面我会逐一拆解IO包中用到的核心设计模式,结合源码示例和使用场景讲清楚每个模式的应用方式。 一、装饰器模式(Decorator Patter 阅读全文
posted @ 2026-03-07 12:03 七星6609 阅读(1) 评论(0) 推荐(0)
摘要: Java IO模型及底层原理、使用场景 Java IO模型是Java处理输入输出的核心基础,不同IO模型适配不同的业务场景,其底层原理直接决定了程序的IO性能。下面我会从基础概念、核心IO模型、底层原理、使用场景四个维度,由浅入深讲清楚Java IO模型。 一、前置基础:同步/异步、阻塞/非阻塞 理 阅读全文
posted @ 2026-03-07 10:31 七星6609 阅读(2) 评论(0) 推荐(0)
摘要: 线程的状态及状态转换全解析 Java 线程的状态是并发编程的基础,JDK 官方(java.lang.Thread.State 枚举)定义了6种核心状态,状态转换则围绕“线程生命周期”和“同步/阻塞操作”展开。下面从「状态定义→转换规则→实战示例」讲透这一核心知识点。 一、先明确:Java 线程的 6 阅读全文
posted @ 2026-03-06 22:52 七星6609 阅读(1) 评论(0) 推荐(0)
摘要: interrupted、interrupt、isInterrupted 三者关系全解析 在 Java 线程中断机制中,interrupt()、interrupted()、isInterrupted() 是核心且极易混淆的三个方法,它们围绕线程中断标志位工作,但职责、行为、调用方式完全不同。下面从「核 阅读全文
posted @ 2026-03-06 22:16 七星6609 阅读(4) 评论(0) 推荐(0)
摘要: CompletableFuture 是 Java 8 引入的异步编程核心工具,相比传统 Future 更灵活(支持回调、组合、异常处理),其底层原理围绕异步任务执行、回调链管理、状态机三大核心设计,下面由浅入深拆解。 一、先搞懂核心定位:为什么需要 CompletableFuture? 传统 Fut 阅读全文
posted @ 2026-03-06 21:45 七星6609 阅读(0) 评论(0) 推荐(0)
摘要: 本文会先梳理 LockSupport 的核心原理,再逐一对比它与 synchronized、Thread.sleep()、Object.wait()、Condition.await() 的区别,同时解答 notify()/unpark() 提前调用的关键问题,帮你彻底理清 Java 并发中线程阻塞/ 阅读全文
posted @ 2026-03-06 21:26 七星6609 阅读(2) 评论(0) 推荐(0)
摘要: ThreadLocal 完全解析:原理、用法与场景 ThreadLocal 是 Java 并发编程中非常重要的工具,核心作用是为每个线程创建独立的变量副本,让线程之间互不干扰,避免了多线程共享变量的线程安全问题。下面从底层原理、正确用法、使用场景三个维度彻底讲清楚 ThreadLocal。 一、底层 阅读全文
posted @ 2026-03-06 18:28 七星6609 阅读(9) 评论(0) 推荐(0)
摘要: ThreadPoolExecutor 是 Java 并发编程中线程池的核心实现类,也是 Executor 框架的核心载体。它解决了手动创建线程的资源浪费、管理复杂等问题,其底层原理围绕「线程管理、任务调度、状态控制」三大核心展开。本文会从核心参数、执行流程、源码拆解、关键机制四个维度,把 Threa 阅读全文
posted @ 2026-03-06 18:07 七星6609 阅读(2) 评论(0) 推荐(0)