- 博客(88)
- 收藏
- 关注
原创 SpringCloud之Gateway
Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring CloudGateway 提供更优秀的性能,更强大的有功能。Spring Cloud Gateway 是由 WebFlux + Netty + Reactor 实现的响应式的 API 网关。它不能在传统的 servlet 容器中工作,也不能构建成 war 包。
2025-07-29 13:26:34
934
原创 Spring Cloud Alibaba 之 Nacos
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,致力于简化云原生应用的构建与治理,相比其他注册中心Eureka,Consul更加强大。一句话总结:Nacos =注册中心配置中心动态 DNS服务治理的综合体。Nacos Server 必须独立启动,Spring Boot 不会内嵌它,不支持 Spring Boot 直接启动为注册中心,需要单独运行 Nacos Server。
2025-07-19 05:50:03
832
原创 SpringCloud相关总结
https://blog.csdn.net/weixin_44958006/article/details/149274470?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_44958006/article/details/149279384?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_44958006/article/details/149280919?spm=1001.2014.3001
2025-07-18 16:58:23
421
原创 SpringCloud之Config
Spring Cloud Config 是 Spring 官方提供的 分布式配置中心 组件,用来 集中管理、动态下发、版本控制 所有微服务的配置文件,支持 Git、文件系统、Vault(什么是Vault?) 等多种后端存储。远程仓库(服务端)+(客户端),实现集中管理、版本控制、动态刷新的微服务配置中心。
2025-07-16 15:17:23
917
原创 SpringCloud之Zuul
Spring Cloud Zuul 是 Netflix 提供的微服务网关核心组件,作为统一的 API 入口,承担请求路由、过滤、安全控制等关键职责。
2025-07-15 03:59:15
510
原创 SpringCloud之Hystrix
Spring Cloud Hystrix 是 Netflix 开源的容错库,用于解决分布式系统中的服务雪崩问题。它通过熔断、降级、限流等机制提升系统的弹性和稳定性。Hystrix 本质是分布式系统的“保险丝”,通过快速熔断故障服务 + 优雅降级保障核心链路可用性。尽管Hystrix 已停止更新(Netflix 进入维护模式),但其容错设计思想(如熔断状态机、资源隔离)仍深刻影响微服务架构。
2025-07-14 19:41:40
448
原创 SpringCloud之Feign
Feign是声明式HTTP客户端,专为微服务架构设计,用于简化服务间的远程调用,它让微服务之间的调用变得更简单,类似controller调用service。Feign,主要是社区版,大家都习惯面向接口编程。这个是很多开发人员的规范。微服务名字 【ribbon】接口和注解 【feign】
2025-07-11 19:02:18
389
原创 SpringCloud之Ribbon
Ribbon 是 Spring Cloud 微服务架构中实现客户端负载均衡的核心组件,由 Netflix 开源并集成到 Spring Cloud 生态中。它通过动态分配请求到多个服务实例,提升系统的可用性和性能。Ribbon 作为微服务架构的“流量调度器”,通过客户端负载均衡显著提升系统弹性。其核心价值在于:✅ 轻量集成:无需独立部署,与 Spring Cloud 生态无缝协作。✅ 灵活扩展:支持策略定制和容错机制。
2025-07-11 18:20:25
746
原创 SpringCloud之Eureka
Eureka 用于简化分布式系统的服务治理,基于REST的服务,用于服务的注册与发现。。其设计优先保障可用性(AP 模型),尤其适合云环境中动态伸缩的服务架构。在 Spring Cloud 生态中,它已成为微服务基础设施的关键组件。
2025-07-11 16:03:45
1053
原创 内存溢出(Out of Memory, OOM) 和 内存泄漏(Memory Leak)的区别
程序在申请内存时,系统无法提供足够的可用内存空间以满足需求,导致程序崩溃或异常。程序在运行过程中,未能释放不再使用的对象,导致这些对象持续占用内存,最终可能引发内存溢出。系统无法满足内存申请需求。代码缺陷导致对象无法释放,可能引发溢出。
2025-02-24 18:12:13
784
原创 Java获取html标签内容中的图片链接
这种语法简单直观,易于理解和维护。:Jsoup 能够准确解析复杂的 HTML 结构,包括嵌套标签、不规范的 HTML 等。虽然在某些情况下,正则表达式的性能可能更高,但在处理复杂的 HTML 结构时,Jsoup 的性能通常更优。正则表达式:正则表达式虽然功能强大,但在处理复杂 HTML 时,表达式可能会变得非常复杂,难以维护。:Jsoup 对 HTML 的容错性很强,即使 HTML 代码不规范,也能正确解析。:虽然正则表达式也可以实现类似的功能,但其语法复杂,难以阅读和维护。
2025-02-18 17:05:45
250
原创 Java中过滤器,拦截器,AOP之间的区别以及分别执行的时机
过滤器是 Servlet 层级的粗粒度控制,适合处理所有请求的通用逻辑。拦截器是 Spring MVC 层级的细粒度控制,适合针对 Controller 的定制逻辑。AOP是方法层级的灵活切面,适合解耦业务无关的横切关注点(如日志、事务)。
2025-02-11 22:26:35
709
原创 微信开发中的openid和unionid相关总结
在处理小程序登录过程中,经常遇到openid和unionid的相关概念,以下做相关对比说明:定义:openid 是用户在某个微信公众号或小程序中的唯一标识。作用范围:openid 是针对每个微信公众号或小程序独立的。同一个用户在不同的公众号或小程序中会有不同的 openid。同一个小程序或者公众号中,登录的微信号不变的情况下,请求获取到的openid是不变的。(如:在该小程序注销后,使用同一个微信号重新注册登录,openid还是相同的)获取方式:通过微信公众号或小程序的接口(如 wx.login(
2025-02-06 21:29:26
1040
原创 MySQL时间类型相关总结(DATETIME, TIMESTAMP, DATE, TIME, YEAR)
MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html在 MySQL 中,处理时间相关的数据类型主要有以下几种:DATE、TIME、DATETIME、TIMESTAMP 和 YEAR。每种类型适用于不同的场景,并且它们之间有一些细微的差别。以下是这些时间类型的特性和比较:DATE格式:YYYY-MM-DD范围:1000-01-01 到 9999-12-31用途:仅存储日期,不包含时间部分。精度:到天。TIM
2025-02-06 20:48:55
813
原创 MySQL获取前/后几年/月/日/秒/毫秒(DATE_ADD(),DATE_SUB())相关总结
https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html#function_date-add常规使用示例:复合型使用示例:注意:示例:二. DATE_SUB(date,INTERVAL expr unit)说明:date:是你想要修改的日期INTERVAL:是一个关键字,用于表示接下来的表达式是一个时间间隔expr:是你想要添加的时间量unit:是你想要添加的时间间隔的类型示例:
2024-07-26 11:07:41
481
原创 .m3u8格式视频在线播放
m3u8文件格式最初是由苹果公司提出,用于存储基于HTTP Live Streaming(HLS)协议的播放列表。HLS是一种用于实时流传输的协议,旨在提供更流畅的视频体验。m3u8文件作为播放列表,包含了视频流的信息,指导播放器如何获取和解码视频内容。
2024-07-02 16:40:37
67099
原创 腾讯地图API相关总结
开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGeocoder开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceGcoder开发文档:https://lbs.qq.com/service/webService/webServiceGuide/webServiceIp
2024-03-12 20:49:37
861
原创 关于MySQL回表,索引覆盖,最左匹配相关总结
指的是在进行查询时,首先通过索引定位到对应页,然后再根据行的物理地址找到所需的数据行。换句话说,回表是指根据索引查询到的主键值,再去根据主键索引获取完整的数据记录。如:一张表: id,name, age, gender, address其中id主键,name普通索引;
2023-10-06 21:37:22
311
原创 为什么MySQL索引选择B+树而不使用B树?
一般innodb索引层数有几层?解析:一般情况下,3-4层,因为3-4层的B+树足以支撑千万级别的数据存储;索引列的键(key)值怎么选?解析:innodb非叶子节点的存储是指针+键值,指针一般变化不大,所以索引列要尽可能选择占用空间小的字段,因为占用越小,单个节点能存储的 指针+键值 自然就更多,存储的数据自然就更多。创建表的时候,主键是否需要自增?
2023-10-06 20:50:29
1145
原创 Mysql之 optimizer_trace 相关总结
MySQL优化器可以生成Explain执行计划,通过执行计划查看sql是否使用了索引,使用了哪种索;但是有些时候,你会发现为什么没想按照我们所想的思路执行:为什么会使用这个索引?!为什么没有使用添加的索引?!于是,MySQL5.6版本之后开始引入optimizer trace(优化器追踪),它可以查看优化器生成执行计划的整个过程,以及做出的各种决策,包括访问表的方法、各种开销计算、各种转换等等,帮助我们更好的去优化sql。
2023-08-16 22:42:49
594
原创 MySQL之 show profile 相关总结
和命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换,IO等待,内存使用等,这个命令对于分析某个SQL的性能瓶颈非常有帮助,借助于show profile的输出信息,能让我们知道一个SQL在哪个阶段耗时最长,消耗资源最多,从而为SQL优化,提高SQL性能提供重要的依据。版本情况:Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。
2023-08-10 16:23:35
534
原创 MySQL的数据插入总结(不存在就插入,存在就更新)
数据表id是自动递增的不建议使用该语句;如果冲突数据比较多,新增的下一条id会相应跳跃的比较大。有并发事务执行的insert 语句情况下不建议使用该语句,可能会导致产生死锁。
2023-08-07 19:13:57
3660
原创 Redis中BigKey、HotKey的发现与处理
参考自: https://developer.aliyun.com/article/788271?
2023-08-07 17:10:32
438
原创 分层领域模型相关总结(DO/PO/VO/BO/DTO/Query等概念)
(2) 使用org.apache.commons.beanutils.BeanUtils进行copy对象时,被copy的对象(source/orig)中包含的字段目标对象(target/dest)必须包含,可以有其他的多于字段,类型可以不相同,但字段名称必须一。一个是 org.springframework.beans.BeanUtils 包下的,一个是org.apache.commons.beanutils.BeanUtils 包下的。⚫ Query:数据查询对象,各层接收上层的查询请求。
2023-05-04 11:37:43
1547
1
原创 Mybatis-Flex
(阿里云开发的 Mybatis 增强框架,来至于阿里云·云效产品团队)都要强大;(老牌的 MyBatis 增强框架,开源于 2016 年),以及。据说最终结果是:无论。
2023-04-25 22:39:15
2352
原创 MySQL中文全文检索
常规数据库搜索都是用 like 语句,但是like 语句是不能利用索引的,查询效率极其低下。这也就是为什么很多功能都只提供标题搜索的原因,因为如果搜索内容,几万数据就跑不动了。Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。
2023-04-17 18:33:08
1674
原创 Spring事务传播行为总结
事务传播行为(propagation behavior):指的就是当一个事务方法被另一个事务方法调用时,这个事务与事务应该如何运行。事务传播行为是Spring框架独有的事务增强特性。这是Spring为我们提供的强大的工具箱,使用事务传播行为可以为我们的开发工作提供许多便利。对应场景外围是否开启事务外围方法是否包含异常外围是否捕获异常person方法是否包含异常最终执行结果3.1.1×√××均成功3.1.2×××√user成功,person失败3.1.3√√×。
2023-03-14 19:11:35
1914
原创 MySQL的事务总结(事务特性,隔离级别,脏读,不可重复读,幻读,常见问题)
读到了别的事务回滚前的脏数据。比如事务A执行过程中修改了id=1的数据,在未提交前,事务B读取了id=1的数据,而事务A又回滚了,这样事务B就形成了脏读。事务A首先读取了一条数据,然后执行逻辑的时候,事务B将这条数据改变了,然后事务A再次读取的时候,是A的事务修改成功后的数据,发现数据不匹配了,就是所谓的不可重复读了。一个事务在前后两次查询同一个范围的时候,第一次查到的数据比第二次查到的数据条目不一致。
2023-01-31 18:12:43
582
原创 登录授权方案:JSON Web Tokens (JWT)
JWT 即 json web tokens,通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为JSON对象传输,在数据传输过程中还可以完成数据加密、签名等相关处理。可用于登录授权或者其他服务之前的信息交换;JWT本质就是一个字符串,它是一个开放标准(rfc7519),定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象安全地传输信息,它是无状态的,去中心化的;(1)JWT 是去中心化的, 不仅可以用于认证,也可以用于交换信息。有效使用 JWT,可以降低服务器查询数据库的次数。
2023-01-18 01:17:30
932
原创 Yearning MYSQL
Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!
2023-01-12 16:29:00
177
原创 线程池相关总结
线程池(Thread Pool):把一个或多个线程通过统一的方式进行调度和重复使用的技术,统一管理,避免了因线程过多而带来使用上的开销和不可控。降低资源消耗,通过重复利用已创建的线程降低线程频繁创建和销毁造成的损耗;提高响应速度,因为省去了创建线程这个步骤,所以在拿到任务时,可以立刻开始执行。提高线程的可管理性,如控制线程并发数量,降低服务器压力,制定统一策略,增强拓展性。。等;
2022-11-16 19:57:02
1374
原创 Redis的数据淘汰策略
1. noeviction(系统默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外);:从所有key中使用LRU算法进行淘汰(LRU算法:即最近最少使用算法);:从设置了过期时间的key中使用LRU算法进行淘汰;:从所有key中随机淘汰数据;:从设置了过期时间的key中随机淘汰;:在设置了过期时间的key中,淘汰过期时间剩余最短的;
2022-11-07 15:48:12
1369
原创 Git连接远程仓库(私有/公开仓库),克隆代码
git官网下载地址:https://git-scm.com/download/win但是 ,git官网的话,下载速度比较慢,可以使用阿里的镜像下载速度会比较快:阿里的git镜像下载地址:https://registry.npmmirror.com/binary.html?path=git-for-windows/另外,git相关的文档参考链接,包含搭配使用的客户端,插件,托管平台,服务,教程,常用命令等等,git大全:https://gitee.com/all-about-gitgit安装完成后,鼠标
2022-10-31 22:04:45
2594
原创 MySQL的锁总结
MyISAM 和 InnoDB 引擎均支持表锁。优点:开销小,加锁快,不会出现死锁。缺点:锁定力度大,发生锁冲突概率高,并发度最低。# 对user表加读锁 lock table user read;# 同时对user表加读锁,对order表加写锁 lock tables user read , order write;什么情况下需要用到表锁?当需要更新表中的大部分数据事务涉及到多张表,业务逻辑复杂,加表锁可以避免死锁。
2022-10-02 13:18:28
149
原创 neo4j部署:ServiceUnavailable: WebSocket connection failure. Due to security constraint...
neo4j部署linux,连接后报错:ServiceUnavailable: WebSocket connection failure. Due to security constraint…阿里云/腾讯云需要到对应的服务器控制面板,放开对应的端口号,否则界面访问不了,也会报上面的错误!解决:一共需要放开三个端口:7473,7474,7687。可能是对应的neo4j配置文件没有配置完整;可能是防火墙拦截了对应的端口号;
2022-09-28 11:52:44
2735
原创 图数据库Neo4j
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。节点 和 边节点:代表一个实体,可以是人,物,地点等等;边。
2022-09-21 16:47:47
896
原创 GNU screen -- Linux上快速部署管理jar包
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。(类似的应用还有tmux)
2022-09-21 16:29:52
658
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人