自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

(づ ̄ 3 ̄)づxl

舍得付出,必有回报

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

原创 深入浅出 RocketMQ 顺序消息:从原理到最佳实践

在分布式系统中,消息的顺序性是一个至关重要的需求,尤其是在金融交易、电商订单、数据库同步等场景中。RocketMQ 作为业界领先的消息中间件,提供了强大且可靠的顺序消息功能。本文将从核心原理、开发最佳实践到常见问题,为你全面解析 RocketMQ 的顺序消息机制。

2025-06-10 11:26:30 812

原创 OGNL详解与Arthas实践指南

OGNL(Object Graph Navigation Language,对象图导航语言)是一种功能强大的表达式语言,最初由Drew Davidson和Luke Blanshard开发,现在作为Apache Commons项目的一部分进行维护。OGNL的核心设计理念是提供一种简洁而统一的方式来访问Java对象图中的任何节点,使开发者能够以简单的语法操作复杂的对象结构。

2025-06-03 10:55:58 843

原创 Arthas实际应用与实战

Arthas(阿尔萨斯)是阿里巴巴开源的一款强大的Java应用诊断工具,专为线上问题定位而生。它允许开发者在不修改应用代码的情况下,实时查看应用的运行状态,包括JVM信息、线程堆栈、方法调用、类加载等,极大地提升了线上问题排查效率。

2025-06-03 10:45:27 871

原创 Redis部署架构详解:原理、场景与最佳实践

Redis作为一种高性能的内存数据库,在现代应用架构中扮演着至关重要的角色。随着业务规模的扩大和系统复杂度的提升,选择合适的Redis部署架构变得尤为重要。本文将详细介绍Redis的各种部署架构模式,包括单点部署、主从复制、哨兵模式、集群模式、Active-Active地理分布式以及Kubernetes云原生部署等,深入剖析其工作原理和底层机制,并提供架构选型指南和典型应用场景比对,帮助读者根据实际需求选择最适合的Redis部署方案。

2025-06-02 17:13:57 744

原创 JVM与JMM深度解析:从Java 8到Java 21的演进

在Java开发者的职业生涯中,理解JVM(Java虚拟机)和JMM(Java内存模型)是进阶的必经之路。无论是日常开发还是面试,这都是绕不开的话题。本文将从实用角度出发,带你深入了解JVM和JMM的核心概念,并对比Java 8、Java 11、Java 17和Java 21各版本的实现差异,帮助大家更好的了解JVM和JMM

2025-05-28 14:23:43 1702

原创 Java垃圾回收器全面解析:原理、参数、对比与实战调优

本文将从核心原理、常用参数、各垃圾回收器对比、适用场景、线上调优到最佳实践,全方位解析Java垃圾回收器

2025-05-28 14:17:29 813

原创 Alibaba Sentinel 入门教程:从理论到实战

Sentinel 是阿里巴巴开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

2025-05-27 10:47:44 866

原创 深入理解Kubernetes:从理论到实践的容器编排之旅

Kubernetes已经彻底改变了我们部署和管理应用的方式。从其诞生背景到核心原理,从最佳实践到实际部署,本文尝试探索了这一强大工具的各个方面。作为一个开源项目,Kubernetes的成功不仅在于其技术优势,还在于其活跃的社区和生态系统。通过CNCF(云原生计算基金会)的支持,Kubernetes继续发展壮大,并与众多相关项目协同工作,共同构建云原生的未来。Kubernetes的学习是一段持续的旅程,随着技术的不断发展,需要不断学习和适应。但这也正是云原生世界的魅力所在——永不停止的创新和进步。

2025-05-27 10:44:46 759

原创 Go Web框架选型与实践:基于Gin的REST API开发指南

Go语言凭借其简洁的语法、高效的性能和强大的并发特性,已成为后端开发的主流选择。在实际项目中,选择合适的Web框架能显著提高开发效率和应用性能。本文将从实用角度出发,分析主流Go Web框架的特点,并以Gin框架为基础,结合GoLand IDE开发一个包含MySQL数据库交互和完整CRUD操作的REST API系统。

2025-05-26 09:18:26 939

原创 Go语言入门指南

本文将为你提供Go语言的入门指南,包括环境安装、基本语法和实用的代码示例,帮助你快速上手这门强大的编程语言。

2025-05-26 09:15:14 1627

原创 TiDB:从快速上手到核心原理与最佳实践

本文将全面介绍TiDB,从快速上手实践到核心原理和最佳实践,帮助读者深入理解这一强大的分布式数据库系统。此外还会介绍TiDB底层存储引擎RocksDB的核心原理,以及它如何支撑TiDB的高性能和可

2025-05-25 20:50:36 876

原创 RocketMQ核心特性与最佳实践

Apache RocketMQ是一个分布式消息和流平台,具有低延迟、高性能和高可靠性,广泛应用于互联网、大数据、移动互联网、物联网等领域。本文将全面介绍RocketMQ从3.0到最新版本的核心特性、数据结构、应用场景和最佳实践,并提供与其他消息队列产品的选型对比,帮助读者在实际项目中做出合理的技术选择和实施。

2025-05-25 20:28:04 1009

原创 Redis 3.0~8.0特性与数据结构全面解析

Redis(Remote Dictionary Server)作为一款开源的内存数据结构存储系统,自2009年首次发布以来,已经发展成为现代应用架构中不可或缺的组件。从最初的简单键值存储,Redis逐步演变为支持多种数据结构、提供丰富功能的数据平台。本文将系统梳理Redis从3.0到8.0的演进历程,详细解析其核心特性和数据结构,并深入分析各自的应用场景、潜在局限性以及最佳实践。

2025-05-25 19:12:22 1480

原创 领域驱动设计与COLA框架:从理论到实践的落地之路

本文将深入探讨DDD的核心理念,COLA框架的架构设计,以及如何利用COLA框架实现DDD的落地,并针对实践中的常见问题提出解决方案。

2025-05-25 18:29:05 960

原创 Seata分布式事务详解:原理、实现与代码示例

本文将深入介绍阿里巴巴开源的分布式事务解决方案Seata,详细讲解其架构原理、支持的事务模式以及实际应用示例,帮助读者全面了解分布式事务的处理方案。

2025-05-25 17:17:11 942

原创 Java21 并发处理说明

本文深入探讨Java21并发处理的三大关键技术:结构化并发、虚拟线程大规模并发连接和Scoped Values线程内数据共享。这些技术代表了Java平台在并发编程领域的最新进展,为开发者提供了更简洁、高效和可靠的并发编程模型。

2025-05-25 15:48:08 721

原创 Java 8到Java 24:核心特性介绍

Java语言自Java 8以来经历了显著的演变,每一步都在提升开发效率、运行性能和代码可维护性。从函数式编程到模块化系统,从G1垃圾收集器到ZGC,从Lambda表达式到虚拟线程,从传统标量计算到Vector API的SIMD并行计算,Java不断适应现代软件开发的需求。理解这些特性的实现原理和技术细节,不仅有助于更好地应用它们,还能帮助开发者做出更明智的技术选择,平衡创新与稳定性,为组织创造更大的价值。无论是构建微服务、云原生应用还是高性能计算系统,现代Java都能提供强大而灵活的解决方案。

2025-05-25 15:46:07 1267

原创 基于Apollo对配置类的热更新优化

介绍了如何基于 spring 扩展机制编写默认的Apollo 事件监听器,结合 refreshScope 实现对配置类的热更新

2025-03-01 20:42:50 979

原创 sharding-jdbc metadata load优化(4.1.1版本)

sharding-jdbc在分库场景加载元数据时,会发现速度比较慢,本文尝试提供一种解决思路

2024-09-14 05:47:44 1329 1

原创 XXL-JOB中断信号感知

本文主要解决异步线程不感知xxl-job主线程中断信息的问题

2024-07-06 18:37:08 1013

原创 Java对象通用比对工具

本文提供一种通用java对象比对方法,并支持自定义的过滤哪些字段无需比较

2024-07-06 17:19:49 1344

原创 Antlr4学习笔记

本文介绍Antlr4实现/语法规则以及sharding-jdbc的解析sql流程

2023-11-02 10:51:27 1069 2

原创 idea插件&护眼模式设置

整理了下可以提高工作舒适度的一些设置。

2023-07-18 20:52:59 2112 1

原创 sharding-jdbc分片功能学习笔记

分片数据功能里用了比较多的设计模式,如装饰器、工厂、委托、模版、发布-订阅、建造者、上下文等,整体代码、流程设计很优秀,值得学习,里面还有许多实现细节还有没有分析到,比如事务,sql解析,归并,各类上下文等,只是把大概的流程梳理了一下,整理出使用时需要注意的点。

2023-06-27 23:31:16 604 2

原创 S3 Client:Timeout waiting for connection from pool 问题追踪

S3 Client:Timeout waiting for connection from pool

2022-11-13 16:34:31 3690 1

原创 springboot+mybatis-plus基于拦截器实现分表

前言最近在工作遇到数据量比较多的情况,单表压力比较大,crud的操作都受到影响,于是开发一款基于mybatis-plus的拦截器

2021-11-07 16:03:15 2581

原创 skywalking8.0+es构建监控系统

skywalking8.0集群+es7.x集群项目缺少链路监控工具,在考虑效率、代码侵入性、易用性等因素后,决定引入skywalking8.0进行链路监控首先搭建es集群用于存储skywalking收集的信息这里准备了三台机器,部署两台skywalking、3个es节点解压下载好的es7,es7自带jdk并做好相关配置#集群名称cluster.name: skywalking-es#节点名称node.name: skywalking-node2path.data: /u

2020-12-20 15:41:53 3605 4

原创 redis工具包开发——限流模块(滑动窗口、漏斗、令牌桶)的实现

限流模块主要是三种限流的算法+aop实现@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Import({RedisBloomFilterRegistar.class, RedisLimiterRegistar.class})public @interface EnableRedisAux { Stri...

2020-02-04 23:46:52 4103

原创 redis工具包开发——redis布隆过滤器实现

布隆过滤器实现其实核心也是模仿guava的布隆过滤器实现,只是操作字节数组的载体改为redis的bitmap结构,在该工具包的布隆过滤器开发里面涉及到比较核心的点有1.guava里的布隆过滤器理解2.如何接入spring3.redis 布隆过滤器实现先看第一部分布隆过滤器他能够判断某个对象肯定不存在或者可能存在,核心的思想是,对一个对象进行不同的hash函数处理所得到的值标志到...

2020-01-28 17:28:28 1546

原创 redis工具包开发——功能概览

这篇文章主要是介绍功能点,先看看这个工具包有什么可以用的,目前主要有两个模块——布隆过滤器、基于注解限流。基于redisTemplate用法:这里用maven作为工具管理包演示,添加jitpack源、添加下面的依赖 <repositories> <repository> <id>jitpack.io&l...

2020-01-11 02:51:46 1008 6

原创 redis的数据类型

string:实现类似于java的ArrayList,当串大小小于1MB时候,采用加倍扩容,当大于1MB时,则每次扩容只会多扩容1MB的空间,最大长度为512MB相关指令:set key value get key mset key1 value1 key2 value2...keyn valuen mget key1..keyn setnx key value等list:实现类似...

2019-12-21 01:34:56 720

原创 scrapy+selenium爬取某招聘网站的职位、公司、面试评论

前一段时间因某些原因再次与爬虫碰面了,这次是爬取拉勾网的一些信息并利用wordcloud生成词云,并使用pyechart生成一些统计信息什么的爬取前还是要观察拉勾网的一个页面结构,一般都是有规律可循的首先查看职位要求比如要爬取对应的信息,这里选用xpath定位相应的位置,可以使用scrapy -shell 进行调试,但在调试要加上USER_AGENTscrapy shell ...

2019-12-19 23:58:36 1198 1

原创 基于netty、zookeeper手写RPC框架之五——心跳机制优化及添加负载均衡

本系列的第二篇,加入netty心跳机制,只是简单地描述了如何监听不活跃的服务端,即自定义一个标记服务是否活跃的规则及空闲链接的监听器,在标记为不活跃后,客户端应该怎么处理,服务端再次活跃了,客户端又如何处理,先看下这个图monitor负责监控server们的是否活跃,如果不活跃,修改zk上对应节点的值,client则监听zk上的事件,当发生变动的节点的值为不活跃,则加进不活跃的优先队列,这...

2019-11-24 16:07:38 970

原创 基于netty、zookeeper手写RPC框架之四——实现异步请求和连接池管理

上一篇文章说到,现在这种每发起请求一次就新建一个client链接,但是如果在并发比较高的情况下,就会造成资源浪费,如果通过client和server进行长期链接,把需要处理的请求存到client里面,并且通过异步的形式返回,便会减少资源浪费。这里有两个主要的问题,1、如何实现异步返回?2、如何把client和server对应起来?先看第一个问题,所谓的异步返回,可以以点奶茶为例,当顾客(消...

2019-11-22 12:11:45 536

原创 基于netty、zookeeper手写RPC框架之三——接入Spring

在接入前,先自定义一组传输对象,而不是原来传输一个Invocation,返回则是一个String,这里需要用到netty的编解码器,当然这里可以用netty已经实现好的对象编解码、第三方的Probuff编解码器,而如果想要实现自己的传输协议,就要继承netty的编解码,他可以用来自定义解析对象以及封装对象,这里对对象处理采用本来是采用gson,但是有很多bug,便用了另一种进行序列化,这样自定义协...

2019-11-20 19:04:01 345

原创 基于netty、zookeeper手写RPC框架之二——接入zookeeper作为注册中心,添加心跳机制

zookeeper介绍分布式是指多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务,由于远程调用会出现网络故障等问题,如何保持数据一致性和可用性则成为要解决的问题。而zookeeper是一个分布式服务协调组件,是一个高性能的分布式数据一致性的解决方案。特性一致性:数据一致性,数据按照顺序分批入库。原子性:事务要么成功要么失败,不会局部化单一视图:客户端...

2019-11-19 14:10:25 1072

原创 基于netty、zookeeper手写RPC框架之一——基本模块搭建与编写

最近在b站看到一个视频,可以用来入门rpc(remote procedure call),记录一下学习的过程,rpc即是一个计算机通信协议,该协议允许运行于一台计算机的程序调用另一台计算机的子程序,程序员无需额外地为这个交互作用编程,如果设计的软件采用面向对象编程,远程调用亦可作为远程方法调用大概的流程是消费方以本地方式调用服务,将方法、参数等信息封装成请求体,并且找到服务地址,将消息发送到服...

2019-11-18 17:59:09 677

原创 设计模式之状态模式

状态模式允许对象在内部状态改变时改变他的行为,使用组合通过简单引用不同的状态对象来应对状态变化。下面简单的举个例子,比如一个登陆的流程1.用户一些参数校验(比如用户密码,用户有效状态,用户是否逻辑删除),没有问题则走22.在redis上存放用户信息,并返回用户相关信息3.返回错误信息可是有一天我想在密码校验那里加多一段逻辑,即连续输错5次密码后,锁定十分钟,十分钟之后才可以重新...

2019-11-10 01:32:49 194

原创 设计模式之过滤链模式

过滤链可以对对象进行一系列的步骤处理/过滤,把处理的步骤解耦一个个小的部分,主要有三个角色,1.抽象的过滤类,负责定义过滤器的实现接口,具体的实现还要具体过滤器角色去参与。2.具体的过滤类,负责具体筛选规则的逻辑实现,最后再返回被处理的对象3.被处理的对象, 具体过滤器角色中可以对指定感兴趣的目标进行处理,也可以统一处理抽象的过滤方法@FunctionalInterf...

2019-11-07 17:32:49 683

原创 设计模式之代理模式

定义:为其他对象提供一种代理以控制对这个对象的访问,代理对象起到中介作用,可以屏蔽功能或者增加额外的服务代理模式分为两种:静态代理:public interface Run { void run();}public class DogStaticProxy implements Run{ private Dog dog; public Do...

2019-10-28 09:37:21 144

空空如也

空空如也

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

TA关注的人

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