- 博客(39)
- 收藏
- 关注
原创 一篇文章带你快速入门canal
Canal 是阿里巴巴开源的数据库变更订阅组件,可模拟 MySQL 从库协议,解析 binlog,实现增量数据订阅。本文介绍 Canal 的基本原理及环境搭建,包括 MySQL binlog 配置、Canal 服务器端部署、以及 Spring Boot 集成 Canal 进行数据监听的方法。通过 Spring Boot Starter Canal,可优雅地实现数据库变更的监听与处理。最后,通过示例展示数据库操作如何触发监听,实现数据的实时监控与处理。
2025-03-19 17:09:52
829
原创 nginx如何做限流
Nginx限流通过控制请求速率或并发连接数,防止服务器因突发流量、恶意攻击或资源过载而崩溃,保障服务稳定性。其核心机制包括两种方式:一是基于漏桶算法的请求速率限制(limit_req模块),以固定速率处理请求并支持突发缓冲,避免瞬时高并发冲击;二是基于连接数限制(limit_conn模块),通过管控单一IP或服务的并发连接数,防止资源耗尽。两者核心区别在于,速率限流针对单位时间内的请求频率,而连接数限流限制同时活跃的连接数量。
2025-03-19 15:51:40
841
2
原创 分布式id的生成
本文解析分布式系统全局唯一ID生成方案。针对传统自增ID的不足,对比三种方案:UUID(全局唯一但无序)、Redis原子计数(有序但依赖组件)、Snowflake算法(核心为时间戳+机器ID+序列号)。Snowflake通过41位时间戳、10位机器ID和12位序列号生成有序ID,单机每秒可生成26万ID,兼顾高性能与唯一性。文中提供可复用的Java工具类,支持机器ID自动分配与并发控制,测试验证万级ID无重复递增,有效解决分库分表、高并发场景下的ID冲突问题,为分布式系统提供轻量级解决方案。
2025-03-04 06:00:00
732
原创 使用JWT实现微服务鉴权
随着微服务架构的广泛应用,服务间的鉴权与安全通信成为系统设计的核心挑战之一。传统的集中式会话管理在分布式场景下面临性能瓶颈和扩展性不足的问题,而基于令牌的鉴权方案逐渐成为主流。JSON Web Token(JWT)凭借其轻量、无状态、自包含的特性,为微服务间的安全交互提供了高效解决方案。本文将深入探讨JWT的原理、实践及安全策略,结合代码示例解析如何通过JWT实现微服务鉴权,帮助开发者构建高安全性与可维护性的分布式系统。
2025-02-20 23:21:17
715
1
原创 JWT 令牌
JWT(JSON Web Token)是一种开放标准,用于在网络应用中安全地传递信息。它通过将用户身份信息和其他元数据编码为一个紧凑的字符串,使得服务端无需保存会话状态,进而提高系统性能和可扩展性。JWT由三部分组成:头部、负载和签名。本文将深入分析JWT的结构、工作原理以及它在现代Web开发中的应用,包括身份验证和信息交换等场景。
2025-02-19 23:30:51
710
原创 MD5加密算法和BCrypt密码加密算法
本文对比分析了MD5与bcrypt两种常见的密码加密算法。MD5由于计算速度快且缺乏足够的安全性,已经逐渐被弃用,尤其在密码存储领域。相对而言,bcrypt算法通过加盐和多次迭代机制,显著提高了密码的抗破解能力,适合用于高安全性要求的场景。文章详细探讨了两者的工作原理、优缺点以及实际应用中的安全性表现,以供读者按照需求来使用这两种加密算法。
2025-02-19 18:45:38
1323
1
原创 spring cloud gateway限流常见算法
本文主要介绍了网关中限流的作用以及对令牌桶算法、漏桶算法、计数器算法三种限流算法的介绍,文末也做了对比较常见的令牌桶算法的实现。
2025-02-18 22:27:34
1064
原创 idea日常报错之UTF-8不可映射的字符
在我们日常代码编写的时候可能会遇到各式各样的错误,有时候并不是你改动了代码,而是莫名其妙就出现的报错,今天我就遇到一个在maven编译的时候提示“UTF-8不可映射的字符”这样一个报错,以下是这个解决办法。
2025-02-18 21:36:53
857
原创 前端入门(html)
HTML 指的是超文本标记语言 (Hyper Text Markup Language) ,它是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language)。标记语言是一套标记标签 (markup tag)。
2025-01-17 19:15:10
744
原创 redis高级(面试题二)
skiplist(跳表)首先是链表,与传统链表相比有几点差异:元素按照升序排列存储节点可能包含多个指针,指针跨度不同。传统链表只有指向前后的指针,因此只能顺序一次访问。如果查找的元素在链表中间,查询的效率会比较低。而skiplist则不同,它内部包含跨度不同的多级指针,可以让我们条约查找链表中间的元素,效率非常高。其结构如图所示:我们可以看到1号元素就有指向3、5、10的多个指针,查询时就可以跳跃查找。
2024-10-08 22:15:26
2328
2
原创 redis高级(面试题一)
redis主从集群结构如图:在该图中有一个redis集群,集群中有一个master节点,两个slave节点,当我们通过redis的java客户端访问主从集群是,应该做好路由。如果是写操作,应该访问master节点,master会自动将数据同步给两个slave节点如果是读操作,建议访问各个slave节点,从而分担并发压力redis提供了哨兵(sentilel)机制来监控主从集群状态,确保集群的高可用性。Sentinel的三个作用是什么?集群监控故障恢复状态通知。
2024-10-08 20:13:19
2319
1
原创 mybatisplus介绍以及使用(下)
在上篇的mybatisplus中介绍到了其概念,其中包括了什么是mybatisplus以及已经有了mybatis但是我们为什么使用它,介绍到了他给我们带来的便利之处(本篇会继续讲解mybatisplus的功能),还介绍到了安装以及一些常用的注解和条件构造器(很重要),那就继续开启新篇章吧!上篇文章。
2024-09-24 15:28:56
1313
原创 redis入门之redis数据库的基础操作(内含常见面试题)
Redis 是一个开源的内存数据结构存储系统,支持多种数据类型,可用于缓存、消息队列、排行榜等场景。它具有高性能、丰富的命令集和灵活的数据结构。
2024-09-09 23:44:02
534
3
原创 redis安装讲解(windows和linux版本),有这一篇就够了(超详细,内含安装包)
Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等。Redis 以其高性能、高可用性和丰富的功能而受到广泛欢迎。
2024-09-07 06:00:00
1081
4
原创 Java基础之二维数组的使用胎教级别教学(含练习打印输出“杨辉三角形”)
🎉默认自己无能,无疑是给失败制造机会!🎉提前祝大家端午快乐,不要忘记每天充实自己喔,本篇详解二维数组的使用。
2022-06-02 22:49:31
494
32
原创 java入门之冒泡排序
优快云话题挑战赛第1期活动详情地址:https://marketing.youkuaiyun.com/p/bb5081d88a77db8d6ef45bb7b6ef3d7f参赛话题:Java学习记录话题描述:可以记录一下平时学习Java中的一些知识点、心得、例题、常见的问题解决创作模板:一、前言学习概述:简单的介绍一下本篇文章要讲解的Java知识点 学习目标:读者读完这篇文章之后,你希望他掌握你讲解的哪些重要的知识点二、###的定义比如像这篇关于Java100天编程指南—第9天:数组的数
2022-05-12 15:19:05
1839
34
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人