自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

itsniu的博客

博客旨在IT分享技术,知识点等技能

  • 博客(32)
  • 收藏
  • 关注

原创 StopWatch的用法总结

StopWatch是一个非常方便的工具,特别适合于性能调优、记录代码段的执行时间。它可以帮助开发人员快速判断哪部分代码执行缓慢,从而进行优化。

2025-02-07 18:09:35 355

原创 Nacos 深入解析:用法、原理与实际应用

Nacos(Dynamic Naming and Configuration Service)是一个开源的服务发现、配置管理、和服务管理平台,提供了动态服务发现、配置管理、动态配置更新等核心功能,是分布式系统中不可或缺的基础组件之一。在微服务应用中,动态配置管理是至关重要的。了解并掌握 Nacos 的用法和原理,可以帮助团队提升开发效率、确保服务的稳定性,并在微服务架构中实现高可用和高扩展性。Nacos 提供了服务健康检查功能,确保注册到 Nacos 的服务实例是健康的,避免将请求发送到宕机的服务实例。

2025-01-07 20:09:12 786

原创 Nacos100道面试题简答

以上 100 道面试题及答案涵盖了 Nacos 的核心概念、架构设计、服务发现、配置管理、高可用部署、故障排查、性能优化、安全性等各个方面。这些题目适合用来帮助求职者准备与 Nacos 相关的面试,也适用于深入学习 Nacos 的关键功能和最佳实践。

2025-01-07 20:05:59 812

原创 POJO:简洁的Java对象,数据传输的桥梁

POJO,顾名思义,是“普通的 Java 对象”,它指的是不依赖于特定框架、类库或者接口的 Java 类。简单来说,POJO 只包含属性(字段)、构造方法、getter 和 setter 方法,而没有其他复杂的框架特性。POJO 并不强制要求继承某个父类或实现特定的接口,它只是一个用于封装数据的普通对象。POJO 的定义无继承限制:POJO 不继承自任何特定类或实现特定接口。无业务逻辑:它的主要目的是存储数据而不是执行业务逻辑。简洁性:它只包含基本的字段、构造方法、getter 和 setter 方法。

2025-01-07 19:59:24 738

原创 JIT编译与AOT编译

JIT 编译(Just-In-Time Compilation)是一种即时编译技术,通常用于基于虚拟机的编程语言,如 Java。JIT 编译并不是在程序运行之前就完成所有的编译工作,而是在程序运行时动态地将热点代码(即频繁执行的代码)编译成机器码,然后直接在 CPU 上执行。与静态编译不同,JIT 编译能够根据程序的实际运行情况进行优化,从而提升性能。AOT 编译(Ahead-Of-Time Compilation)是指在程序运行之前将字节码或源代码编译为机器码。

2025-01-01 12:21:07 682

原创 逃逸分析(Escape Analysis)与 JVM 优化:提升 Java 性能的秘密武器

逃逸分析是 JVM 在运行时执行的一项优化技术,其核心目的是通过分析对象的引用路径,判断对象是否会“逃逸”出当前方法、当前线程或当前作用域。如果一个对象的引用超出了当前的作用域,称为“逃逸”;如果它仅在当前方法或当前线程中使用,不会被外部访问,则称为“不逃逸”。逃逸分析是一项由 JVM 自动执行的重要优化技术,它通过分析对象的引用路径,判断对象是否会逃逸,从而决定是否进行栈分配、锁消除、方法内联等优化。开发者可以通过理解逃逸分析的原理,合理设计代码结构,帮助 JVM 更好地执行这些优化,以提高程序的性能。

2025-01-01 12:14:54 1078

原创 RPC的基本原理与手写RPC框架

如何实现RPC框架

2024-12-30 21:56:41 2163

原创 Linux系统的I/O操作与Java的I/O模型

1. **阻塞 I/O**:Java 的传统 I/O 模型(BIO)直接依赖 Linux 的阻塞 I/O 系统调用(如 `read()` 和 `write()`),每次 I/O 操作都会阻塞线程,直到操作完成。2. **非阻塞 I/O 和 NIO**:Java NIO 的非阻塞 I/O 操作依赖于 Linux 提供的非阻塞 I/O 系统调用(如 `fcntl` 或 `ioctl`)

2024-12-30 18:02:40 739

原创 MySQL 分库分表方法与挑战

MySQL 分库分表是一种常用的横向扩展方法,可以有效解决单一数据库或表带来的性能瓶颈。通过合理的分库分表策略、应用层路由和中间件的支持,可以提高系统的并发能力、存储能力和查询效率。然而,分库分表也带来了一些复杂度,尤其是在事务管理、跨库查询、数据迁移等方面。因此,在设计分库分表方案时需要综合考虑数据分布、查询模式、系统可扩展性等因素。数据存储位置的确定和正确的路由操作是分库分表架构中的核心挑战。

2024-12-29 18:03:03 861

原创 并行收集和并发收集的区别

特性并行收集(Parallel GC)并发收集(CMS、G1、ZGC)目标提高吞吐量降低暂停时间线程关系GC 线程与应用线程互斥GC 线程与应用线程并发暂停时间STW 时间较长STW 时间较短吞吐量高较低,消耗更多 CPU适用场景后台批量任务、离线计算响应时间敏感的实时系统垃圾收集器示例。

2024-12-29 16:52:03 585

原创 JVM调优及举例

参数功能-Xms和-Xmx设置初始和最大堆大小新生代与老年代的比例Eden区与Survivor区的比例启用G1垃圾收集器G1的最大GC暂停时间目标输出详细GC日志OOM时生成内存转储文件通过以上案例和参数配置,结合实际业务特点,可以针对性地优化JVM性能。需要注意的是,调优是一个持续的过程,应结合监控数据不断调整。Full GC频繁通常是内存管理的信号灯,分析GC日志和应用行为是定位问题的关键。根据具体场景调整堆内存、GC策略和代码逻辑,能有效降低Full GC的发生频率。

2024-12-29 16:47:49 2154

原创 结合源码说说Bean的生命周期

Spring Bean 生命周期的各个阶段以及源码分析

2024-12-27 10:02:17 1042

原创 Spring启动流程并结合源码说说

Spring 容器,管理 Bean 的生命周期。依赖注入 (DI):Spring 将依赖注入到 Bean 中。生命周期管理:包括初始化、依赖注入、销毁等。Bean 定义:可以通过 XML 或 Java 配置类来定义 Bean。事件机制:容器在生命周期中发布和监听事件。Spring Framework 的启动流程相对更复杂一些,因为它涉及更多的手动配置和 Bean 定义。与 Spring Boot 的自动化配置不同,Spring Framework 通常需要开发者明确地配置每个部分的组件。

2024-12-27 09:54:39 978

原创 SpringBoot启动原理

SpringBoot启动原理

2024-12-26 23:28:54 713

原创 SpringBoot如何启动的Dubbo服务

SpringBoot如何启动Dubbo服务

2024-12-26 23:17:08 1027

原创 SpringBoot中Dubbo的简单使用方式

SpringBoot集成Dubbo

2024-12-26 23:11:23 1089

原创 Dubbo工作原理与源码

Dubbo 是一个高效、灵活的 RPC 框架,它通过服务注册与发现、负载均衡、容错、动态代理等机制,提供了一个高性能的分布式服务框架。Dubbo 的工作原理注重服务治理和高可用性,能够在大规模分布式系统中处理大量的请求。以上源码分析深入探讨了 Dubbo 在服务暴露、服务消费、负载均衡、容错机制、服务注册与发现等方面的实现。通过这些核心源码,我们可以更清楚地理解 Dubbo 的工作原理,尤其是如何通过Invoker进行远程调用,如何使用Protocol和Registry进行服务暴露与注册,如何利用和。

2024-12-25 13:08:05 2306

原创 Dubbo面试题总结

Dubbo面试题

2024-12-25 13:03:24 741 1

原创 Zookeeper的选举过程

Zookeeper的投票选举

2024-12-25 12:53:49 1177

原创 Spring如何处理循环依赖

Spring处理循环依赖源码、Spring如何处理循环依赖、Spring启动重点代码

2024-12-25 12:38:26 797

原创 限流组件Nginx+Gateway+Sentinel结合使用

是控制系统负载、避免服务过载的一种机制。在微服务架构中,限流有助于确保系统在高并发下能够保持稳定性和高可用性,避免因为过多的请求导致系统崩溃。常见的限流技术包括基于。

2024-12-24 10:04:12 774

原创 SpringCloudAlibaba+Dubbo微服务架构落地技术栈选取

结合。

2024-12-23 16:08:13 726

原创 SpringCloud中哪些场景下需要使用Dubbo(二)

上面提供了多个场景和代码示例,展示了的一些常见应用场景。这些场景涵盖了性能要求高、跨语言支持、服务治理、容错、分布式事务管理、多协议支持、渐进式迁移等实际应用。通过集成 Dubbo 和 Spring Cloud,你可以充分利用 Dubbo 在高性能通信、服务治理、分布式事务等方面的优势,同时也可以享受到 Spring Cloud 提供的服务发现、配置管理、熔断机制、负载均衡等功能。这种集成为微服务架构提供了更加灵活和高效的服务管理方式。

2024-12-23 15:10:47 708

原创 SpringCloud中哪些场景下需要使用Dubbo(一)

性能要求高:对于对性能、低延迟、吞吐量有严格要求的场景,Dubbo 的高效协议和性能优势使其成为理想选择。跨语言服务:如果微服务体系中涉及到多种编程语言,Dubbo 的跨语言支持提供了更好的选择。复杂的服务治理和容错机制:当需要更多细粒度的服务治理和容错策略时,Dubbo 提供了更丰富的功能。现有 Dubbo 项目迁移:对于已经在使用 Dubbo 的团队,可以利用 Spring Cloud Dubbo 进行平滑过渡,享受 Spring Cloud 的生态优势。分布式事务管理。

2024-12-23 15:06:39 481

原创 Zookeeper的高并发表现

写操作的延迟和主节点的压力网络延迟对集群同步的影响锁机制和同步操作对性能的限制节点数量对可扩展性和高可用性的影响优化写操作,尽量减少写请求的频率调整集群节点数,合理配置硬件和网络资源针对业务场景选择合适的分布式协调框架,可能的话,使用Zookeeper的替代品(如 etcd、Consul)来处理高并发场景下的需求。读操作:Zookeeper 可支持10,000 QPS或更高。写操作:在高并发写入场景下,通常在500 到 2,000 QPS之间。混合负载。

2024-12-23 14:36:13 1042

原创 Zookeeper的集群中的每台机器存储的数据都一样吗

在 Zookeeper 集群中,每台机器上的数据最终是一致的,但在某些操作中会有不同步的时刻(例如网络延迟或者节点刚加入集群时)。Zookeeper 通过Leader-Follower 模式和Zab 协议来保证集群数据的一致性,确保了每个节点的数据一致性和同步。

2024-12-22 13:15:25 973

原创 Zookeeper的工作原理

Zookeeper 的工作原理围绕着分布式一致性和高可用性展开。它通过Zab 协议保证数据的一致性,通过Leader 选举保证集群的高可用性,通过Watchers和临时节点提供事件通知机制来满足分布式系统中的同步需求。Zookeeper 的核心优势在于其强一致性、低延迟的读操作和高可靠的写操作,使得它成为解决分布式协调和同步问题的优秀工具。

2024-12-22 13:13:41 1286

原创 Zookeeper的应用场景有哪些

Zookeeper 在分布式系统中扮演着非常重要的角色,它不仅仅用于配置管理,还涉及到分布式锁、服务发现、集群管理等多个方面。以下是 Zookeeper 的一些常见应用场景及其具体实现方法,包含代码示例。

2024-12-22 13:03:24 738

原创 Zookeeper面试题总结

以下是一些常见的 Zookeeper 面试题及详细解答,帮助你更好地准备面试。Zookeeper 是一个非常强大的分布式协调工具,在许多大规模分布式系统中都有应用。面试时,理解 Zookeeper 的工作原理、数据一致性机制、常见的使用场景和功能实现(如分布式锁)是至关重要的。同时,掌握 Zookeeper 的高可用性保障机制(如 Leader 选举、Quorum)、数据持久性和事务处理等内容也是面试的重点。如果你在面试过程中能清晰地解释这些内容,将帮助你更好地展示自己的技术能力。

2024-12-22 12:50:22 699

原创 Zookeeper集群搭建需要准备几台物理机

Zookeeper 集群通过选举算法来选举出一个 Leader 节点负责写操作,其他节点作为 Follower。需要至少 3 个节点来保证能够选举出一个 Leader。对于集群中的每个操作(例如写入操作),需要超过半数的节点确认才能认为该操作已成功完成。如果你的 Zookeeper 集群规模较大,或者是高负载环境,考虑使用更多节点(如 5、7 台物理机),以便提高性能和容错能力。,它通过选举来选举出一个 Leader 来处理写请求,其他节点是 Follower,负责处理读取请求。

2024-12-22 12:47:10 406

原创 Linux命令简单介绍

Linux 命令总结,涵盖了常用命令和分类,帮助你更好地掌握 Linux 系统操作。

2024-12-22 12:23:29 776

原创 Linux目录介绍

Linux 文件系统简单介绍

2024-12-22 12:12:42 672

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除