
spring-boot
文章平均质量分 86
boot项目
拽着尾巴的鱼儿
The harder you work, the luckier you are
展开
-
面试篇-Spring-2+Spring-mvc+Mybatis+Springboot
你们用过Spring-mvc 吗,一条Http 请求的只修改流程是怎样的,Springboot项目的自动装配是怎样的,存储的orm 框架Mybatis 你们用到了吗,他的一二级缓存是怎样的。本文重点对面试的问题进行介绍,祝愿每位程序员都能顺利上岸!!!本文对Spring-Mvc 的执行过程,Mybatis Orm 框架,以及对Springboot 的自动装配常见面试内容进行的整理。原创 2024-07-14 10:56:51 · 1002 阅读 · 0 评论 -
面试篇-Spring-1+ioc+bean的生命周期+aop+事务支持+循环依赖
你们项目中使用过Spring吗,你知道Spring 的IOC和AOP吗,你知道bean的工作过程吗,你知道Spring 是怎么解决循环依赖吗,Spring 中的事务底层实现原理是怎样的。本文重点对面试的问题进行介绍,祝愿每位程序员都能顺利上岸!!!Spring 中的三级缓存,通过提前暴露bean 来解决循环依赖的问题。本文对Spring 框架中,常见的如:Spring bean 的生命周期,bean 的循环依赖,Aop 以及事务的底层原理面试问题进行总结。原创 2024-07-14 10:56:34 · 738 阅读 · 0 评论 -
面试篇-微服务-1-Spring-cloud+服务的主从与发现+服务雪崩+服务降级+服务熔断+服务限流+CAB和Base+分布式事务
你们项目中有使用过Spring-cloud 框架进行微服务的治理吗,你都用过Spring-Cloud 的哪些组件;你知道服务雪崩,服务降级,服务熔断吗;你们的服务限流措施怎么做的;你了解过CAB和BASE理论吗。本文重点对面试的问题进行介绍,祝愿每位程序员都能顺利上岸!!!本文对微服务架构下,常用的组件面试题进行总结。原创 2024-07-12 14:11:58 · 1119 阅读 · 0 评论 -
源码篇--Nacos服务--中章(7):Nacos客户端重连的4中场景
本文对 nacos 客户端的重新连接nacos 服务端的4中场景进行介绍,环境:客户端版本2.2.1,客户端将springboot 3.0.13。本文对Nacos客户端重连的4中场景和服务端的处理进行介绍。原创 2024-04-29 14:22:59 · 1258 阅读 · 0 评论 -
源码篇--Nacos服务--中章(6):Nacos客户端启动-grpc通道建立&客户端服务信息获取(故障转移)细节
在源码篇–Nacos服务–中章(5) 对nacos 客户端的创建及grpc 连接的建立,心跳检查,实例注册进行了介绍;本文对grpc通道建立&客户端服务信息获取(故障转移)细节进行介绍。本文对客户端服务信息获取的故障转移细节,及客户端同服务端的grpc 连接建立进行介绍。原创 2024-04-24 10:21:26 · 1386 阅读 · 0 评论 -
源码篇--Nacos服务--中章(5):Nacos客户端启动-实例注册-grpc连接建立
本文对Nacos 客户端启动时,同服务端建立长连接的过程进行介绍。环境:客户端版本2.2.1,服务端版本 3.0.13;客户端在启动成功之后发布 WebServiceInitializedEvent 事件,nacos 客户端同服务端创建通信通道,发送nacos 服务端的服务检查请求,正常返回后得到通道的id,创建双向流 grpc 的通信存根,发送连接确定建立的请求后;发起客户端实例的注册请求到nacos 服务端进行注册。原创 2024-04-24 10:20:53 · 1257 阅读 · 0 评论 -
源码篇--Nacos服务--中章(4):Nacos服务端启动--事件发布&订阅
本文对Nacos 中事件的发布和订阅进行介绍。Nacos 事件发布&订阅 本身就是一个生产者和消费者的模型,Nacos 将事件分成了两类,常规事件 和 慢事件,常规事件:每种事件类型都对应自己的一个 默认事件发布器对象 队列大小为128,通过set 集合存放消费改事件的消费者;慢事件:都使用共享事件发布器, 队列大小为1024,使用map 集合存放消费改事件的消费者 key: 包名+类名的 topIc, value 为set 集合存放消费改事件的消费者;原创 2024-04-23 09:30:24 · 791 阅读 · 0 评论 -
源码篇--Nacos服务--中章(3):Nacos服务端启动--端口监听
本文对Nacos 服务端的端口监听进行介绍。在 Nacos 中,BaseRpcServer 是一个基础的远程过程调用(RPC)服务器组件,用于处理 Nacos 集群内部节点之间的远程通信和调用。其主要作用包括:提供远程服务调用接口:BaseRpcServer 作为一个 RPC 服务器,提供了远程服务调用的接口,使得集群中的各个节点能够通过网络进行相互调用。通过 BaseRpcServer,节点之间可以实现远程调用服务的功能。原创 2024-04-23 09:29:53 · 1267 阅读 · 0 评论 -
源码篇--Nacos服务--中章(2):Nacos服务端启动--集群寻址
源码篇–Nacos服务–中章(1):Nacos服务端的启动;本文对Naoc 集群的寻址进行介绍;本文对 Nacos服务端启动–集群/单机寻址方式进行介绍。原创 2024-04-19 16:54:58 · 1286 阅读 · 0 评论 -
源码篇--Nacos服务--中章(1):Nacos服务端的启动
在源码篇–Nacos服务–前章我们对nacos 的架构及其概念进行了介绍,本文从源码层面对nacos 服务端资源的加载进行介绍;@Override// 自定义的环境变量 设置本文从源码层面对nacos 服务端资源的加载进行介绍。原创 2024-04-19 16:53:23 · 1724 阅读 · 0 评论 -
源码篇--Nacos服务--前章
在阿里云轻量服务器–Docker–nacos 集群部署中我们了解了怎么搭建一个nacos集群;在工具篇–Nacos 源码启动 & jmenv.tbsite.net 错误分析,我们了解了nacos 源码的启动;在框架篇–springboot 客户端 整合& Nacos 版本问题我们了解了 怎么整合到springboot 中;在Idea+maven+spring-cloud项目搭建系列–3整合Nacos中我们可以了解cloud的整合和使用;本文对Nacos 的架构及相关概念进行介绍;原创 2024-03-29 09:03:24 · 825 阅读 · 0 评论 -
工具篇--分布式定时任务springBoot 整合 elasticjob使用(3)
本文对springBoot 整合 elasticjob 进行介绍。本文环境 jdk:1.8;// 分片参数 0=text,1=image,2=radio,3=vedio String shardingParameter = shardingContext . getShardingParameter();原创 2024-03-12 21:15:04 · 1908 阅读 · 1 评论 -
工具篇--分布式定时任务springBoot--elasticjob简单使用(1)
本文对 elasticjob 的简单使用进行介绍。ElasticJob 是一个分布式任务调度框架,由当当网开发并开源。它基于 Zookeeper 实现分布式协调,采用经典的分片算法,能够实现弹性扩容和缩容的分布式任务调度。ElasticJob 能够灵活地应用于各种环境中,如易用性、稳定性、弹性可伸缩等方面表现优异。以下是 ElasticJob 的一些主要特性:分布式任务调度:ElasticJob 基于 Zookeeper 实现分布式协调,支持分布式自动负载均衡调度。原创 2024-03-11 21:24:22 · 1726 阅读 · 0 评论 -
Springboot--整合Logback 日志框架(Maven)
在项目调试和运行中,都可能涉及到 日志的输出,本文对springboot 整合Logback 日志框架进行介绍。Logback 是一个灵活的日志框架,旨在替代传统的 Apache Log4j 框架。它是由 Ceki Gülcü 开发,并且支持 SLF4J 日志接口。:Logback 的核心模块,提供了日志事件处理和过滤的基本功能。Logger、Appender、Layout 和 Filter 等关键组件都在这个模块中定义。原创 2024-03-08 17:13:48 · 2449 阅读 · 0 评论 -
工具篇-- 定时任务xxl-job的集群部署
xxl-job 中xxl-job-admin 和 xxl-job-executor-samples 集群部署;本文介绍xxljob 调度端以及执行器端 的集群,以及任务执行执行时的负载均衡和故障转移。原创 2024-02-26 17:16:49 · 6197 阅读 · 3 评论 -
工具篇-- 定时任务xxl-job
xxl-job 是一个开源的分布式任务调度平台,旨在解决大规模分布式任务调度问题。它提供了任务管理、任务调度、任务执行、日志记录、监控报警等功能,可以帮助用户实现任务的调度和执行,并提高任务执行效率和稳定性。是一个分布式任务调度平台,它的主要作用是用于管理和调度任务,可以实现以下功能:任务管理:对任务进行添加、编辑、删除等操作。可以配置任务的执行策略、定时触发规则等参数。运行日志:监控任务的运行情况,查看任务的执行日志,包括任务的执行状态、执行时间、执行结果等信息。原创 2024-02-26 17:16:10 · 821 阅读 · 0 评论 -
Springboot--整合Mybatis与定时任务quartz
在Springboot–整合定时任务quartz–集群篇中已经介绍了如何集群并使用quartz ,但是我们并不想每个定时任务都去重复的创建JobDetail 和 Trigger,那么是否可以将任务存储在mysql 中,然后在项目启动完成后,统一的去加载任务呢,答案是肯定可以的;通过将任务存储于mysql 中,在项目启动后可以获取所有任务,封装JobDetail和 CronTrigger并交由quartz 管理;原创 2024-02-23 15:03:44 · 1147 阅读 · 0 评论 -
Springboot--整合定时任务quartz--集群篇
通常在生产环境中,不会存在单体的应用,如一个订单服务,可能同时部署多个相同的服务到不同的服务上,从而形成集群。此时定时任务就会面临重复执行的问题;@Autowired@Bean// 标识quartz 数据源quartz 的集群需要同一个服务的不同实例,都要连接到同一个 定时任务的数据源,并且通过 org.quartz.jobStore.isClustered: true 开启 集群,以实现定时任务的负载均衡和故障转移。原创 2024-02-23 15:03:09 · 3672 阅读 · 1 评论 -
Springboot整合Canal -- Canal 多客户端
文章目录前言一、批量注册bean定义:1.1 定义Canal注解:1.2 canal bean定义注册:1.3 canal bean 生成:二、canal客户端获取mysql数据变动2.1 canal客户端2.2 消息处理总结参考前言在项目中如果想要多个Canal 客户端通过tcp直连接入Canal 服务端,显然需要定义多个连接不同实例的客户端,而每个客户端除了连接到的实例不同其它配置几乎都相同,如果定义多个客户端显然会造成很多重复代码,那么spring 中有什么办法可以批量定义canal客户端?原创 2024-01-16 14:38:50 · 1225 阅读 · 0 评论 -
工具篇--SpringCloud--openFeign--日志输出
在项目中当使用openFeign 调用远程接口,当接口联调时可能需要对feign 接口调用的情况进行日志打印。本文列举了在使用openFeign 怎么对日志的输出进行设置。原创 2024-01-04 15:56:27 · 4961 阅读 · 0 评论 -
工具篇--SpringBoot与SpringCloud 的版本对应关系&SpringBoot与JDK对应关系(官网文档解释)
通常我们创建springboot 项目时都会用的springcloud 框架对springboot 进行整合,所以此时就非常有必要了解他们之间的版本对应关系了,最准确的信息就需要到官网进行了解。本文按照Spring 的官网对-SpringBoot与SpringCloud 以及SpringBoot与JDK 的版本对应关系进行整理。原创 2024-01-04 15:55:09 · 9640 阅读 · 1 评论 -
Spring-boot Mybatis-plus 实战应用
Spring-boot 项目中引入了Mybatis-plus 后 应该怎样进行数据源的配置,怎样通过Mybatis-plus 的接口快速的实现CRUD。定义id 生成:(分布式全局唯一id 的设置可以参考我博客中的其他文章 搜索关键字"分布式全局唯一id" 查看)@Component@Override//可以将当前传入的class全类名来作为bizKey,或者提取参数来生成bizKey进行分布式Id调用生成.//根据bizKey调用分布式ID生成//返回生成的id值即可.return id;原创 2023-11-14 10:19:43 · 263 阅读 · 0 评论 -
MyBatis-Plus多数据源dynamic-datasource解决多数据源Redis Key 重复问题
在使用ynamic-datasource 因为多个租户共用一个系统,但是每个租户设置的缓存资源必须是隔离的,不然就会造成redis 缓存数据混乱的情况,如 租户1 设置key为name value 为张三的缓存,其他的租户因为缓存key 也是相同的,造成多租户缓存的数据没有做到隔离性。");} // 重要方法,在这里对key 的序列化完成自定义处理 ,追加数据源标识 public byte [ ] serialize(@Nullable String string) {原创 2023-10-11 10:35:59 · 383 阅读 · 0 评论 -
Spring大白话--三级缓存解决循环依赖问题
在使用Spring 开发过程中,我们需要对定义后的bean 通过构造方法,或者bean 注入的方式注入到某个类中进而使用改bean 对应的方法,在此过程中就会出现一个类中注入了n多个bean,几个类中bean 相互注入,出现 A 依赖B,B依赖C,C又依赖A/B 这种循环情况的出现。提示:以下是本篇文章正文内容,下面案例可供参考。原创 2023-09-27 15:19:02 · 3774 阅读 · 0 评论 -
分库分表篇-2.4 springBoot 集成Mycat(1.6) 分库分表,读写分离,分布式事务
springboot 在整合mycat 之后,对于分库分表,读写分离,分布式事务 这些常用的业务处理是怎么实现的。以上就是今天要讲的内容,本文阐述了使用mycat 如何完成分库分表,配置读写分离,以及基于xa 事务实现分布式事务。原创 2023-09-01 10:00:47 · 664 阅读 · 0 评论 -
分库分表篇-2.3 springBoot 集成Mycat(1.6)
在springboot 项目中我们应该如何集成mycat 然后让其帮助我们进行数据的分库和分表处理呢。springBoot 集成mycat 只需要将之前连接db 的数据源修改为 mycat 即可,其它都不用修改;因为mycat1.6 版本使用了query_cache_size 参数,所以将mycat 服务端的对应jar 进行替换;原创 2023-09-01 10:00:10 · 440 阅读 · 0 评论 -
Idea+maven+springboot项目搭建系列--4 整合Mysql读写分离
springboot 中对于数据库mysql的读写分离,依赖于与mysql 的主从复制;即我们将写入的数据放到主库中,然后从库通过主库的binlog 完成数据的复制,当需要读取数据时,就从从库读取;Mysql架构篇–Mysql(M-S) 主从同步;提示:以下是本篇文章正文内容,下面案例可供参考MySQL读写分离是一种数据库架构设计策略,它将数据库的读操作和写操作分别路由到不同的数据库实例上,以提高系统的性能和可扩展性。原创 2023-07-31 09:28:46 · 283 阅读 · 0 评论 -
Idea+maven+springboot项目搭建系列--3 整合阿里云Canal完成Mysql数据的监听
并且当多个客户端,连接到同一个canal 服务端,如果此时客户端感兴趣的数据库和表是相同的,则只有一个客户端能够接收到具体的Binlog数据,从而避免重复消费;canal server在默认情况下使用了RocketMQ作为消息队列,用于将解析出的binlog数据发送到下游的消费端,实现数据的异步传输和消息的可靠投递。至此消息消费的代码完成,从消费端可以看到,通过定义好的CanalConnector 一直向canal server 去拉取消息,完成消费,并且提交消息的ack,并将消费到的最新位点进行保存;原创 2023-06-19 14:41:16 · 1788 阅读 · 2 评论 -
Idea+maven+springboot项目搭建系列--2 整合Rabbitmq完成客户端&服务器端消息收发
Direct Exchange 是最简单的交换机类型,交换机直接与队列完成绑定,它根据消息携带的 Routing Key 和队列与 Exchange 绑定时指定的 Routing Key 精准匹配,然后路由消息到指定队列中。因此,在选择队列类型时,需要结合具体的业务情况和系统限制,选择采用 classic、quorum 还是 stream 队列,以达到最优的性能和可用性。这里分别测试了单条消息,多条消息,延迟消息,事务消息的发送,将其封装为MsgDto对象,在发送时将其转为json 字符串;原创 2023-06-14 09:29:37 · 1746 阅读 · 0 评论 -
Idea+maven+springboot项目搭建系列--2 整合Netty完成客户端&服务器端消息收发
code 比较简单,在服务端的处理器中,首先将接收到的字符串解析成一个 JSONObject 对象。客户端的code 基本和服务端一致,客户端接收了服务端的回写数据并进行了打印,其中@DependsOn(“webNettyServer”) 告诉spring 在装载客户端的bean 时,先要去装载服务端的bean;前言:Netty 作为主流的nio 通信模型应用相当广泛,本文在spring-boot 项目中集成Netty,并实现客户端以及服务器端消息的接收和发送;原创 2023-06-01 16:29:40 · 2314 阅读 · 0 评论 -
springBoot-MyBatis-Plus-binlog日志监听BinaryLogClient
ROW格式:此格式会记录每行数据更新的情况,包括更新前的数据和更新后的数据。客户端连接到MySQL数据库实例,并发送一个特殊的请求,称为dump请求,来指示MySQL开始从当前日志位置发送日志事件。MySQL的binlog-format是用于指定二进制日志的格式的设置,它决定了MySQL服务器记录的事件的详细程度和内容。前言 :项目中如果想要实时监听Mysql 表中数据的实时状态(插入,更新,删除),并根据不同的状态做出相应的动作,应该怎么办;在更改完配置文件后,重启mysql服务。原创 2023-05-31 14:30:22 · 4842 阅读 · 2 评论 -
Rocketmq消息批量发送&消息批量消费
Pull是客户端需要主动到服务端取数据,优点是客户端可以依据自己的消费能力进行消费,但拉取的频率也需要用户自己控制,拉取频繁容易造成服务端和客户端的压力,拉取间隔长又容易造成消费不及时。批量消费消息是一种提高 RocketMQ 消费者性能和吞吐量的好方法,但需要注意消息列表大小、消息顺序和事务性质等问题,以确保消费者的可靠性和稳定性。前言:批量发送和消费消息在一定程度上可以提高吞吐量,减少带宽,那么Rocketmq 中的消息怎么进行批量的发送和批量的消费呢;计算消息的大小并进行压缩。原创 2023-05-30 09:32:59 · 9634 阅读 · 0 评论 -
springBoot-MyBatis-Plus逻辑删除@TableLogic
总的来说,@TableLogic 注解只能对 MyBatis Plus 自动注入的 SQL 生效,不能对手写 SQL 生效,如果需要使用逻辑删除功能,就需要选用 MyBatis Plus 的自动注入 SQL 功能来实现。但是,@TableLogic 注解只对 MyBatis Plus 自动注入的 SQL 生效,不针对手写 SQL 生效,这是因为逻辑删除的原理是在 MyBatis Plus 自动注入的 SQL 中做了特殊处理,实现了逻辑删除功能。即: and 定义的逻辑删除字段 = 定义的正常值;原创 2023-05-25 15:56:55 · 3758 阅读 · 0 评论 -
分布式全局唯一id实现-2 springCloud-MyBatis-Plus集成百度分布式全局id(uid-generator)
消费uid-generator实现思路:MyBatis-Plus在定义业务实体的主键时,可以通过type = IdType.ASSIGN_ID,实现MyBatis-Plus为业务实体使用雪花算法生成唯一主键,MyBatis-Plus默认通过DefaultIdentifierGenerator 类的nextId 方法完成id 的生成,那么只要我们覆盖原有的DefaultIdentifierGenerator 并重写nextId 方法就可以实现自定义id 的生成;以上参数均可通过Spring进行自定义;原创 2023-05-23 13:27:20 · 1647 阅读 · 0 评论 -
springBoot-Mybatis-Plus 多数据源切换实现
封装数据库连接池和连接的获取逻辑:AbstractRoutingDataSource 通过封装多个数据源连接池的实现细节,屏蔽底层数据源的细节,使得业务代码不需要关心连接的获取和释放,从而简化了业务代码的编写。(3). 实现数据源的动态切换:AbstractRoutingDataSource 可以通过动态切换数据源,实现数据源的动态切换,从而在不影响系统正常运行的情况下,能够对数据源进行升级、迁移等操作。2.5 请求:header 头放入本次的db。原创 2023-05-19 16:24:27 · 3806 阅读 · 0 评论 -
MyBatis-Plus多数据源dynamic-datasource解决多线程情境下数据源切换失效问题
MyBatis-Plus多数据源dynamic-datasource解决多线程情境下数据源切换失效问题原创 2023-04-23 16:15:18 · 11187 阅读 · 10 评论 -
spring-boot怎么扫描不在启动类所在包路径下的bean
spring-boot怎么扫描不在启动类所在包路径下的bean原创 2023-04-13 16:15:45 · 1572 阅读 · 1 评论 -
Idea+maven+spring-cloud项目搭建系列--14 整合请求参数校验
Idea+maven+spring-cloud项目搭建系列--14 整合请求参数校验原创 2023-04-13 16:15:08 · 727 阅读 · 0 评论 -
Idea+maven+spring-cloud项目搭建系列--13 整合MyBatis-Plus多数据源dynamic-datasource
Idea+maven+spring-cloud项目搭建系列--13 整合MyBatis-Plus多数据源dynamic-datasource原创 2023-04-01 21:20:50 · 3348 阅读 · 0 评论 -
Idea+maven+spring-cloud项目搭建系列--12 整合grpc
Idea+maven+spring-cloud项目搭建系列--12 整合grpc原创 2023-03-10 16:07:05 · 1568 阅读 · 0 评论