- 博客(402)
- 资源 (3)
- 收藏
- 关注
原创 Full GC 的触发及影响
JVM的Full GC会对整个堆内存进行回收,频繁触发会严重影响系统性能。电商系统在高并发场景下容易因老年代空间不足而触发Full GC,导致应用停顿和响应延迟。JVM通过垃圾回收器的迭代(从Serial到G1)、内存分配优化(栈上分配、大对象处理)以及元空间等改进措施,逐步减少Full GC的影响。示例代码展示了订单对象累积导致Full GC的情况,建议通过限制对象数量、调整JVM参数(增大堆内存、选用G1回收器)等方式优化系统性能。
2025-05-28 17:24:56
613
原创 Java并发知识点,ThreadLocal详解
ThreadLocal是一种线程级别的存储机制,适用于在多线程环境中为每个线程提供独立的变量副本。在开发电商网站时,ThreadLocal可以用于存储用户信息,使得在处理用户请求的整个过程中,各个方法都能方便地访问这些信息,而无需显式传递参数。例如,用户登录后,可以将用户信息存储在ThreadLocal中,后续的业务逻辑可以直接从中获取用户数据,简化代码并减少错误。然而,使用ThreadLocal时需注意线程池中的线程复用问题,必须在请求结束时清理ThreadLocal,以避免内存泄漏和数据混淆。此外,Th
2025-05-12 10:55:39
213
原创 Linux服务器上部署Docker全程指南,并将JDK1.8、MySQL、Redis和SpringBoot服务打包成Docker容器并启动
本文详细介绍了在CentOS系统上安装和配置Docker的步骤,包括安装依赖工具、添加Docker仓库、安装Docker引擎、启动Docker服务以及验证安装。此外,还提供了配置Docker镜像加速的方法,并演示了如何在Docker容器中安装JDK1.8、部署MySQL和Redis,以及如何将SpringBoot应用打包为Docker镜像并运行。最后,文章总结了完整启动流程、注意事项和常见问题的解决方案,帮助用户顺利使用Docker部署和管理应用。
2025-05-09 16:14:37
359
1
原创 高级Java开发工程师面试题,流计算 Flink面试题,流计算窗口机制与工业物联网设备监控,基于流计算的工业设备状态追踪与故障预测,流计算与批处理的混合架构设计(工业数据湖场景)
某工业数据湖需同时支持实时分析(如设备告警)和离线分析(如历史数据趋势)。工业物联网中,某工厂部署了数千个传感器实时监测设备温度、振动等数据。某工厂的生产线设备需实时追踪运行状态(如转速、压力),并预测潜在故障。
2025-05-07 17:01:22
1068
原创 JVM的FullGC有多么可怕,如何避免FullGC
如果老年代被塞得太满,JVM就不得不启动Full GC,收拾整个堆(包括Young和Old),这时候整个JVM线程都会被暂停,用户请求响应时间瞬间飙升。在实际开发中,合理配置GC参数、选择适合业务的回收器,加上代码层面的优化(比如减少大对象、避免内存泄漏),才能让系统在高并发下保持流畅。早期的垃圾回收器(比如Serial GC)是单线程的,Full GC时整个JVM会停顿,用户请求直接被“冻住”。后来引入了并行回收器(Parallel Scavenge),通过多线程加速GC,但Full GC时还是得停顿。
2025-05-07 11:18:56
616
原创 基于SpringBoot 和Mybatis设计一套通用的Java基础类,包含BaseEntity、BaseMapper、BaseService、BaseController
【代码】基于SpringBoot 和Mybatis设计一套通用的Java基础类,包含BaseEntity、BaseMapper、BaseService、BaseController。
2025-04-30 11:23:58
359
原创 Java高级开发工程师面试题,熔断机制相关面试题,熔断机制的核心原理与工业互联网场景应用,熔断与降级的协同设计,熔断机制在高并发场景下的优化
在工业互联网的设备监控系统中,设备数据采集服务(Service A)依赖第三方天气数据服务(Service B)获取实时气象信息。当Service B因网络波动或高负载出现故障时,如何通过熔断机制防止Service A被拖垮?在工业互联网的实时数据采集平台中,某设备数据上报接口(Service E)每秒处理10万+请求,依赖第三方数据清洗服务(Service F)。在工业互联网的订单管理系统中,订单服务(Service C)依赖库存服务(Service D)验证库存可用性。
2025-04-30 09:48:46
909
原创 Java高级开发工程师面试题,微服务面试题,熔断与降级机制,Hystrix熔断深度实现,熔断器工作原理与设计模式,熔断与降级协同设计,熔断,熔断模式架构设计器性能优化,
【代码】Java高级开发工程师面试题,微服务面试题,熔断与降级机制,Hystrix熔断深度实现,熔断器工作原理与设计模式,熔断与降级协同设计,熔断,熔断模式架构设计器性能优化,
2025-04-29 16:51:44
634
1
原创 一个通用的数据权限的过滤方法,简单,高效,好用,支持的数据权限范围:仅本人、本组织、本组织及子组织、所有数据
它的主要功能是根据当前登录用户的数据权限范围(如仅查看本人数据、本组织数据或子组织数据等),动态修改查询 SQL 的条件。SelectInterceptor 是一个功能强大的 MyBatis 拦截器,能够根据用户的数据权限范围动态修改查询条件,实现细粒度的数据权限控制。如果查询的是业务表,结合用户表和组织表,限制业务表的创建者 ID 在指定组织范围内。查询业务表时,结合用户表和组织表,限制业务表的创建者 ID 在指定组织范围内。查询参数的基类,包含默认查询条件、组织路径、忽略数据权限标志等属性。
2025-04-28 15:03:26
613
原创 3道Spring Cloud并发场景的架构师级别面试题,高并发场景下如何设计服务降级与限流策略?如何在分布式系统中实现高并发下的分布式锁?如何设计高并发下的分布式事务?
某电商系统需要实现“下单扣库存”的功能,涉及订单服务(Order Service)和库存服务(Inventory Service)。请设计一个基于Spring Cloud的分布式事务方案,确保订单创建与库存扣减的原子性,并说明如何处理异常情况。请设计一个基于Spring Cloud的降级与限流方案,确保系统在极端情况下不崩溃,并说明实现原理。请设计一个基于Spring Cloud的分布式锁方案,并说明如何处理锁的粒度、超时和死锁问题。
2025-04-28 14:11:55
1636
原创 基于工业互联网场景的Java面试题,Java Socket通讯面试系列-高并发场景下的Socket优化设计,TCP协议在工业场景中的可靠性保障,工业通信的安全与扩展性设计
某工业物联网平台需要同时连接10万台传感器设备,每个设备每秒发送一次数据。
2025-04-28 11:16:41
927
原创 字节跳动高级Java面试题盘点--时序数据库分片机制设计与Java客户端优化,时序数据库高可用与数据一致性保障,时序数据实时分析与Java流处理
某工业物联网平台需要实时监控十万台设备的传感器数据(温度、压力、振动等),每秒产生10万条时间序列数据。要求数据存储在时序数据库(如InfluxDB)中,并支持按设备ID、时间范围、区域等多维度高效查询。某工厂需要实时分析设备传感器数据(如温度异常),触发告警。要求Java应用消费InfluxDB的实时数据流,结合Flink或Kafka进行流处理。某工厂的智能巡检系统依赖InfluxDB存储设备状态数据,要求数据写入强一致性,且单节点故障时不影响服务。
2025-04-28 09:22:59
697
原创 工业互联网高级Java开发工程师面试题系列,工业设备状态监控系统设计(Redis缓存与持久化),分布式设备指令调度系统(Redis延迟队列),工业物联网高可用设备指令缓存(Redis Cluster集
【代码】工业互联网高级Java开发工程师面试题系列,工业设备状态监控系统设计(Redis缓存与持久化),分布式设备指令调度系统(Redis延迟队列),工业物联网高可用设备指令缓存(Redis Cluster集。
2025-04-27 17:33:53
569
原创 Java新特性之Project Loom
Project Loom 是Java平台上的一个创新项目,旨在为Java引入轻量级线程(fibers),从而简化并发编程并提高多核CPU的利用率。Loom的目标是让开发者能够更轻松地编写高效、可扩展的并发应用程序,同时保持代码的简洁性和易读性。
2025-04-27 15:10:25
937
原创 ELK Stack:日志管理与分析的全能战士,Java的日志管理
ELK Stack 是一个功能强大且灵活的日志管理和分析平台,适用于从小型到大型的各种系统规模。它不仅提供了高效的日志处理能力,还具备直观的可视化展示工具,帮助开发者和运维人员更好地理解和利用日志数据。通过上述介绍和示例代码,相信你已经对如何搭建和使用 ELK Stack 有了初步的认识。希望这些内容能够为你提供有价值的参考,助力你在日志管理领域迈出坚实的步伐。如果有任何疑问或需要进一步的帮助,请随时查阅官方文档或联系社区。
2025-04-27 14:46:26
825
原创 PlumeLog 和 Redis 集群:日志管理的梦幻组合
想象一下,你正在开发一款应用,每天生成海量的日志数据。如何高效地收集、存储和查询这些日志信息?PlumeLog 加上 Redis 集群就像是为这个问题量身定制的魔法药水。它们联手为你提供了一种既快速又可靠的解决方案。下面,我们就来揭开这组搭档背后的秘密。
2025-04-27 14:16:43
727
原创 JVM的FullGC有多么可怕,如何避免FullGC
如果老年代被塞得太满,JVM就不得不启动Full GC,收拾整个堆(包括Young和Old),这时候整个JVM线程都会被暂停,用户请求响应时间瞬间飙升。在实际开发中,合理配置GC参数、选择适合业务的回收器,加上代码层面的优化(比如减少大对象、避免内存泄漏),才能让系统在高并发下保持流畅。早期的垃圾回收器(比如Serial GC)是单线程的,Full GC时整个JVM会停顿,用户请求直接被“冻住”。后来引入了并行回收器(Parallel Scavenge),通过多线程加速GC,但Full GC时还是得停顿。
2025-04-27 11:34:13
900
原创 Java知识点详细解读,AQS详解
将复杂的同步问题抽象为简单的模板方法,使得开发者可以专注于资源的获取与释放逻辑,而无需处理线程阻塞、唤醒等底层细节。它是Java并发编程的基石,深刻影响了。假设有一个数据库连接池,需要支持多个线程同时访问,但每个时刻只能有一个线程获取连接。,它通过AQS的框架支持可重入、公平锁、超时机制等高级特性,完美解决上述问题。包的设计,为构建高性能、可扩展的并发工具提供了统一的框架。
2025-04-26 06:43:01
588
原创 Elasticsearch 学习之旅:从零开始掌握强大的搜索和分析引擎
想象一下,你站在一座巨大的图书馆前。这座图书馆里存放着无尽的信息,但问题是——如何快速找到你需要的那一本?这便是 Elasticsearch 的用武之地。它不仅仅是一个搜索引擎,更像是一个超级智能的图书管理员,能够瞬间定位并提供你想要的数据。无论是处理海量的日志、实时监控网站流量,还是为电商网站实现复杂的商品搜索,Elasticsearch 都能轻松胜任。
2025-04-25 14:15:46
679
原创 用用Jakarta EE试试:Java 企业应用的新篇章
想象一下,你正在开发一个复杂的企业级应用,需要处理从用户认证到数据持久化的各种任务。这时,Jakarta EE 就像一位经验丰富的导师站在你身边,为你提供了一整套强大的工具和框架,帮助你轻松应对这些挑战。Jakarta EE(以前称为 Java EE)是构建企业级应用程序的现代标准,它不仅继承了 Java 的优良传统,还引入了许多创新特性。
2025-04-25 10:54:45
965
原创 Java9新增的JPMS详解
Java Platform Module System (JPMS) 是Java 9引入的一项重要特性,它对Java语言和平台的发展产生了深远的影响。以下是关于JPMS的详细讲解,包括其产生的背景、发展过程、实际应用、以及它的意义。
2025-04-25 10:54:31
447
原创 ZGC详解
ZGC(Z Garbage Collector)是Java平台上的一个低延迟垃圾收集器,首次出现在Java 11中,并在后续版本中得到了不断的改进和优化。它设计的主要目标是在不影响应用程序性能的情况下提供非常低的暂停时间,即使是在处理超大堆内存(如数TB级别)时也能保持高效的垃圾回收。
2025-04-24 15:36:15
1972
4
原创 Jakarta EE 和 Spring Boot对比,用惯了Spring Boot,突然接手一个Jakarta EE项目,给我整不会了,赶紧现学一下
Jakarta EE 和 Spring Boot 是两个不同的框架,它们都旨在简化企业级 Java 应用程序的开发,但有着不同的设计理念、目标受众和技术实现。理解两者之间的关系和区别有助于选择最适合你项目需求的技术栈。
2025-04-24 14:37:52
1046
1
原创 在生产环境中,你如何确保 Kubernetes 中的 Java 应用程序具有高可用性和弹性?Java高级开发面试题
假设你在一家电子商务公司工作,公司的核心业务是在线购物平台。你们的应用是由多个微服务构成,其中一部分是使用 Spring Boot 构建的 Java 应用程序。这些应用部署在 Kubernetes 上,并且需要保证极高的可用性,即使部分节点或 Pod 失效也不能影响整体的服务。
2025-04-24 14:36:29
696
原创 当处理大规模并发请求时,你如何优化 Kubernetes 上 Java 应用的性能?Java高级开发面试题
想象一下,你正在为一款流行的游戏平台构建后台服务,该平台每天要处理数百万次玩家登录、匹配和结算请求。由于游戏本身的特性,高峰时段的流量可能会突然激增,这对服务器的压力极大。为了应对这种情况,你需要对 Kubernetes 中的 Java 应用进行优化,使其能够在高并发场景下依然表现良好。
2025-03-04 08:00:00
1681
1
原创 如何在 Kubernetes 上安全地管理和部署敏感信息(如密码、API 密钥等),同时确保不影响 CI/CD 流水线的速度?Java高级开发面试题
设想你在一个金融技术服务公司工作,负责开发和运维一组涉及支付处理、账户管理等功能的关键系统。这些系统需要与多个第三方服务交互,因此不可避免地涉及到大量的敏感信息,如 API 密钥、数据库凭证等。然而,直接把这些信息硬编码到代码库中显然是不明智的做法,既不安全也不利于自动化部署。所以,我们需要找到一种既能保证安全性又不影响效率的方法。
2025-03-03 20:00:00
1525
原创 Java开发面试题,在一个电商系统中,如何确保订单创建和库存减少的原子性?
设想你正在开发一个电商平台,在用户下单时需要同时完成两个操作:一是创建新的订单记录;二是从库存中扣除相应的商品数量。这两个步骤必须作为一个整体成功或失败,否则会导致数据不一致的问题。
2025-03-03 15:58:36
668
原创 Java开发面试题,在微服务架构下,如何解决跨服务调用中的分布式事务问题?
假设你在一家大型互联网公司工作,负责维护多个相互协作的微服务。为了提升用户体验,管理层要求你构建一个复杂的交易流程,其中涉及到不同服务之间的交互,如支付网关、库存管理系统、物流配送平台等。这些服务之间存在依赖关系,任何一个环节出错都会影响最终的结果。请你详细说明,在这种情况下,你会如何利用 Spring Boot 来应对上述挑战?请结合具体的业务场景,解释你是怎样设计分布式事务解决方案的,并通过 TCC 或 Saga 模式发现隐藏模式。另外,也请谈谈在保证高并发读写的同时,你是如何确保数据一致性的?
2025-02-28 14:45:00
522
1
原创 Linux 上安装 MySQL 并配置远程访问、开机自启以及数据库导入导出
大多数现代 Linux 发行版都使用 systemd 来管理服务。确保防火墙允许 MySQL 流量(默认端口是 3306)。这将引导你完成一系列的配置选项,包括移除匿名用户、禁止远程 root 登录等。默认情况下,MySQL 不允许远程连接。首先确保系统是最新的,然后根据你的 Linux 发行版选择适当的安装方式。在某些较新的发行版上,你可能需要先添加 MySQL 的官方仓库。授予特定用户远程访问权限。(取决于你的 Linux 发行版)。编辑 MySQL 配置文件。
2025-02-28 09:42:24
403
原创 Nacos启用鉴权,使用MySQL,Nacos+MySQL鉴权配置
Nacos是阿里巴巴开源的服务发现与配置管理平台,它支持多种功能,如服务注册、服务发现、动态配置管理等。为了确保Nacos的安全性和可靠性,在生产环境中通常需要启用鉴权机制,并且可以选择使用MySQL作为持久化存储来保存服务和配置信息。
2025-02-26 15:40:40
693
原创 Linux 上安装 Nacos 并配置开机自启、设置防火墙、关联 MySQL 以及用户鉴权
如果你的服务器上有防火墙(例如 UFW 或 firewalld),请确保开放 Nacos 默认使用的端口(8848)。Nacos 是基于 Java 的应用程序,因此首先需要确保你的系统中已经安装了 JDK。上述配置开启了简单模式下的用户鉴权,并设置了默认的管理员账户为 admin/nacos。Nacos 支持多种方式的身份验证,包括简单的用户名密码认证、OAuth2、JWT 等。如果没有安装,请根据你的 Linux 发行版选择合适的包管理器来安装 OpenJDK 或 Oracle JDK。
2025-02-23 20:20:04
929
1
原创 Linux 上安装 Redis 并进行常见配置
Redis 是一个开源的、高性能的键值对数据库,它支持多种数据结构如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)。以下是详细的安装步骤以及一些常见的配置操作。
2025-02-23 20:18:07
656
原创 PlumeLog 是一个轻量级的日志聚合系统,支持多种存储后端,包括 Redis。当与 Redis 集群(Redis Cluster)结合使用时,PlumeLog 可以实现高效的日志收集、存储和查询功
PlumeLog 是一个轻量级的日志聚合系统,支持多种存储后端,包括 Redis。当与 Redis 集群(Redis Cluster)结合使用时,PlumeLog 可以实现高效的日志收集、存储和查询功能。
2025-02-21 20:45:00
1285
原创 Java + Neo4j 实现好友推荐功能的设计方案
在 Java 中使用 Neo4j 实现好友推荐功能,可以通过以下步骤完成:从设计社交网络的数据模型开始,到编写 Cypher 查询以识别潜在的好友,再到通过 Java 驱动程序与 Neo4j 进行交互。
2025-02-21 19:00:00
180
原创 Java + Apache Flink 实现 IoT 实时数据分析的方案
使用 Apache Flink 进行物联网(IoT)实时数据分析是一个非常强大的解决方案,因为它提供了高吞吐量、低延迟以及精确一次处理语义的能力。以下是详细的实现方案,包括如何设置环境、构建数据流管道、定义业务逻辑以及部署和监控整个系统。
2025-02-21 14:16:08
1060
原创 Linux 上安装 JDK
Java Development Kit (JDK) 是开发 Java 应用程序所必需的工具集,它包括了 Java 编译器、运行时环境(JRE)以及其他开发工具。以下是详细的安装步骤以及一些常见的配置操作。
2025-02-20 19:00:00
344
原创 Linux 上安装 Docker
Docker 是一个开源平台,它允许开发者将应用程序及其依赖打包成容器化单元,从而确保应用在任何环境中都能一致地运行。以下是详细的安装步骤以及一些常见的配置操作。
2025-02-20 14:08:04
825
原创 Java开发面试题,在金融交易平台中,如何保证转账操作的强一致性?
想象你在一个专注于在线金融服务的企业工作,公司的主打产品是一款支持多种货币转换的国际汇款平台。由于资金安全至关重要,管理层特别强调转账过程中必须严格遵守强一致性原则,即任何时刻账户余额都不能出现负值或溢出的情况。请你分享一下在这个项目中是如何应用 Spring Boot 的事务管理功能的?具体而言,请详细描述你是怎么组织转账逻辑,并通过 XA 协议或本地消息表模式分析故障点、优化能源消耗等问题。另外,也请讨论一下你是如何处理海量转账数据流的,尤其是在低延迟要求下。
2025-02-19 14:21:27
602
原创 Elasticsearch 操作命令详解
Elasticsearch 提供了一套强大的 RESTful API,允许你通过 HTTP 请求来进行各种操作,如索引(增加)、删除、更新文档,以及执行复杂的查询。以下是详细的命令介绍,包括增删改查、多条件查询、分页、聚合等。
2025-02-18 19:30:00
715
龙小乐视频剪辑助手,支持视频批量处理,视频混剪,视频分割,视频转图片,视频合并,免安装,解压即用,windows平台适用
2024-08-27
Spring Boot 代码生成器
2020-04-17
kellerMapper.jar
2020-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人