自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 ribbon 超时和重试次数

上面的配置,共计调用12次,原调用一次,重试11次。如果不配置,默认重试一次,也就是调用2次。

2023-08-14 18:55:09 287

原创 eureka集群注册机制

2、客户端直接注册的service会有客户端的信息,被直接注册的service a如果注册到其他service b,那么b也会有客户端的信息,但是如果service b还注册给了其他service,则其他service不会有客户端的信息。eureka7001 注册到eureka7002,eureka7002注册到eureka7003,eureka7003注册到eureka7001。1、客户端注册到多个service,优先第一个生效,其他的不生效,只有第一个service异常之后才会启用第二个。

2023-08-14 14:47:05 112

原创 maven的镜像配置

【代码】maven的镜像配置。

2023-08-11 11:24:15 423

原创 springboot通过kubernetes的configMap挂载配置文件

【代码】springboot通过kubernetes的configMap挂载配置文件。

2023-07-31 16:47:37 233

原创 设置文件返回参数和文件名称

【代码】设置文件返回参数和文件名称。

2023-07-31 16:43:12 821

原创 读写压缩包

【代码】读取tgz的压缩包。

2023-07-31 16:36:12 54

原创 mybatisplus自动生成代码

mybatisplus自动生成代码pom文件生成类pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

2022-03-13 17:07:44 184

原创 日志配置文件logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?><!--%p:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r:输出自应用启动到输出该日志讯息所耗费的毫秒数%t:输出产生该日志事件的线程名%f:输出日志讯息所属的类别的类别名%c:输出日志讯息所属的类的全名%d:输出日志时间点的日期或时间,指定格式的方式: %d{yyyy-MM-dd HH:mm:ss}%l:输出日志事件的发生位置,即输出日志讯息的语句在他所在类别的第几行

2021-10-15 14:55:56 174

原创 springboot项目结构

springboot项目结构源代码目录结构源代码目录结构说明bo:用于本应用内的业务数据传输dto:用于微服务间的业务数据传输entity:和数据库表对应的对象vo:controller的输入输出参数对象repository:数据库操作TestRepository.java:针对某个表的操作,统一数据库操作入口mapper:mybatis接口资源目录结构...

2021-10-13 14:54:26 96

原创 Condition无法指定唤醒线程,Condition本身是无法控制线程执行流程的

Condition 可以指定唤醒线程?先说说问题的起源,最近在网上看到一个网友提问,说是看到了一个教学视频,讲到了线程的执行顺序问题,有一个疑惑,先将代码贴出来。/** * @describe: 测试 * @author: sunlight * @date: 2021/7/31 11:24 */public class Test { public static void main(String[] args) { Loop loop = new Loop();

2021-07-31 12:33:47 284

原创 集群和分布式

集群什么是集群集群,就是把一组相同或者相似的事物组合在一个集合中,从计算机的角度来讲,就是把一个系统,在不同的服务器中多次重复部署。集群中的单体所进行的操作或者功能具有相同或者相似性。举个生活中的例子,楼下早餐店的是两口子在卖,买早餐的时候,不管是向老板还是老板娘都可以买,他们也各自收钱,拿东西,包装,给客人,做的工作都是一样的,这个叫集群。集群的特点数量上 :集群在数量上必须是多个体的,一台服务器不能叫集群;功能上:集群在功能上具有相同或者相似性,完全没有相同点的服务器组合不能叫集群;为什

2021-07-25 21:29:40 105

原创 应用服务器和数据库时间不一致,以及不同应用服务器时间不一致的问题

问题描述今天在生产上遇到一个这样的问题,通过某个功能配置参数,先弹出一个窗口,输入完成后,调用后台接口查询刚刚配置数据,结果出现了配置后的数据无法查询的问题,该问题出现频率很高,但是在测试环境又无法重现。配置的数据在经过一段时间后又可以查询的到,表现的形式具有延时性。问题排查开始认为是前端的问题,在没有等待第一个结果返回就调用查询接口,经过排查不是,又经过代码复查,发现在插入数据时,使用配置生效时间为应用服务器时间,但是查询时,查询的条件为生效时间在数据库系统时间之前的,而刚刚好两台应用服务器的某一台

2021-07-22 00:06:00 2548

原创 Springboot 集成线程池

项目背景: 在某次项目中,需要对用户的评分进行计算,评分分5个大项,每个细项又分8个大项,每个细项的数据都来源于另外一个数据查询服务,数据查询服务的接口平均响应时间大概是100ms,查询到数据后还有进行加工处理,评分的要求是要再2s内完成,如果使用常规的顺序执行,时间至少是5 * 8 * 0.1 = 4s,也就是评分接口响应时间超过4s。问题分析: 数据的调用接口之间没有依赖关系,因此可以使用多线程来调用数据接口,等所有数据返回后,再统一加工处理,所以问题就变成以下处理点:...

2021-07-14 19:44:07 1080

转载 redis缓存雪崩,缓存穿透,缓存击穿的解决方法

一、缓存雪崩缓存雪崩表示在某一时间段,缓存集中失效,导致请求全部走数据库,有可能搞垮数据库,使整个服务瘫痪。使缓存集中失效的原因:1、redis服务器挂掉了。2、对缓存数据设置了相同的过期时间,导致某时间段内缓存集中失效。如何解决缓存集中失效:1、针对原因1,可以实现redis的高可用,Redis Cluster 或者 Redis Sentinel(哨兵) 等方案。2、针对原因2,设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。<?php $redis

2021-06-26 19:15:21 113

原创 漫画:什么是B+树?

https://mp.weixin.qq.com/s/jRZMMONW3QP43dsDKIV9VQ

2021-06-26 17:07:30 64

原创 漫画:什么是B-树?

https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw

2021-06-26 17:06:34 70

原创 mybatis 没有实现类,如何执行sql

提问 大家都知道,mybatis通过接口类定义增删改查方法,然后有个一一映射的mapper文件,在执行sql时,没有接口的实现类,

2021-06-20 20:31:11 549

原创 数据库的ACID特性

原子性:记录之前的版本,允许回滚一致性:事务开始和结束之间的中间状态不会被其他事务看到隔离性:适当的破坏一致性来提升性能与并行度 例如:最终一致~=读未提交。持久性:每一次的事务提交后就会保证不会丢失...

2021-06-17 22:22:37 84

原创 设计模式-抽象工厂模式

什么抽象工厂方法? 抽象工厂是指当业务的产品线分多条,每条

2021-06-02 22:18:30 58

原创 设计模式-简单工厂模式

什么叫简单工程模式?就是把复杂对象的创建过程抽离到一个工厂类中,也就是将逻辑集中到一块,防止逻辑变动时,需要多处修改。简单工厂模式在日常使用中并不一定显式的定义一个工厂类型,将逻辑集中的类和方法,都可以...

2021-06-02 21:53:00 60

原创 快速排序

快速排序是冒泡排序的升级版本,使用的是分治和递归的思想,具体代码如下:package com.test;import java.util.Arrays;/** * @describe: 快速排序 * @author: sunlight * @date: 2021/5/19 20:18 */public class QuickSort { public static void main(String[] args) { int[] arr = {5, 7, 2,

2021-05-20 00:20:15 79

原创 Date 与 LocalDateTime 转换以及LocalDateTime 和字符串互转

LocalDateTime 和字符串互转 private static void testDateTimeFormatter() { // 日期 ---> 字符串 LocalDateTime localDateTime = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");

2021-05-14 10:37:06 716

原创 设计模式之模板方法模式

背景最近在做一个商管系统,有这样一个场景,当操作员提交审核后,需要创建一个待办信息,当具有审核权限的管理员登录系统后,在首页展示一个待办消息提示,当管理员审核通过后,又会创建新的待办信息,当具有二级审核权限的管理员登录系统后,同样可以看到一个待办消息,同理,如果审核未通过,也需要创建一个待办信息给提交资料的操作员,当操作员登录系统时,提示其去修改资料再次提交,此外,当待办事件处理完成后,需要将该待办信息更新为已经处理完成,背景表述完毕。分析以创建待办为例,根据需求的背景来分析,从提交到初审.

2021-04-21 23:54:49 55

原创 mybatis-plus 拦截器敏感字段加解密

背景数据库在保存数据时,对于某些敏感数据需要脱敏或者加密处理,如果一个一个的去加显然工作量大而且容易出错,这个时候可以考虑使用拦截器,本文针对的是mybatis-plus作为持久层框架,其他场景未测试。代码如下:一、查询拦截器package com.sfpay.merchant.service.interceptor;import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;import com.sfpay.merch.

2021-04-07 11:01:22 4787 5

原创 CLASS 类型获取的三种常见方式

背景反射是java中常用的语法结构,在很多场景中都用的到,反射的前提条件是要能获取到class对象,以下大概是获取class对象的三种常见方式:场景一:这是最简单的场景,即在开发期就已经知道需要反射的类型,可以直接使用类名.class方式获取: public static void main(String[] args) { //方式一 Class clazz1 = String.class; }场景二:需要反射的对象是存在配..

2021-03-31 16:09:47 1078

原创 oracle数据库mybatis-plus生成主键方法

背景项目中往表中插入数据时,需要有物理主键,项目使用的是oracle数据,所以不能使用数据自增字段,对于自己新表,可以使用mybatis-plus的默认主键,即通过雪花算法得到的19为数字型主键,但是由于某些原因,有些历史遗留的表主键长度没有19位,也不好修改数据库。解决办法可以通过序列来添加主键,主要过程如下:创建oracle序列 配置mybatis-plus主键策略 /** * 使用序列生成指定主键 * * @return */.

2021-03-29 18:43:40 1027 2

原创 mybatis-plus更新数据库字段为null

背景在项目过程中,信息的录入有个需要是有联动效果的,比如,录入用户信息时,如果性别选择女,则需要填入是否生育,如果是男,则没有。如果有用户先选择了性别女,录入了已经生育字段信息,然后又把性别改成了男,这样数据库的字段就会变成,性别男,已生育这样的奇怪组合,因此,需要把是否生育字段的值改成空值,当然以上例子并不十分准确,但是类似的场景比比皆是。问题项目使用的持久层框架是mybatis-plus,正常来说mybatis-plus是有空值判断,如果更新的对象(比如UserDO)中某个值为空,my.

2021-03-29 17:27:47 1800 2

原创 spring使用Transactional事务管理

背景在公司项目过程中,当需要使用事务管理时,统一的处理方式是在服务的启动类中添加 @EnableTransactionManagement ,然后在需要事务控制的方法上加上注释@Transactional(rollbackFor = Exception.class),基本就能实现事务管理。问题发现有时候在方法上添加注释@Transactional(rollbackFor = Exception.class)后事务并没有生效,包括改成事务的传播級別没有生效和方法没有进行事务管理。经过.

2021-03-29 16:41:47 132

原创 微服务架构中redis取值异常:在A服务中设置的值,在A服务中可以取到,在B服务中取不到

如何设置csdn博客的样式

2019-07-17 10:48:39 1071

空空如也

空空如也

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

TA关注的人

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